Как правильно переместить файлы (если в папке назначения могут быть с такими же именами?)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
helpmeplease
Сообщения: 19

Как правильно переместить файлы

Сообщение helpmeplease »

Здравствуйте,

Как правильно переместить файлы, если в папке назначения могут быть с такими же именами?
чтобы не затерлись новыми!

помогите подправить эту строчку:
mv /var/mobile/Media/*.PNG /var/mobile/Media/DCIM/100APPLE/

в папке /var/mobile/Media/
файлы:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG

нужно переместить их в папку /var/mobile/Media/DCIM/100APPLE/
где могут оказаться файлы с такими же именами:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG

как переместить, что бы перемещаемые файлы переименовывались в
IMG_0001-2.PNG
IMG_0002-2.PNG
IMG_0003-2.PNG

главное, чтобы файлы, которые уже находятся в папке /var/mobile/Media/DCIM/100APPLE/ "не пострадали" :)

спасибо!


зы
и, пожалуйста, не отправляйте читать man (
Спасибо сказали:
Аватара пользователя
Maximus_V
Сообщения: 432
ОС: Gentoo, FreeBSD

Re: Как правильно переместить файлы

Сообщение Maximus_V »

helpmeplease писал(а):
28.03.2013 09:21
Как правильно переместить файлы, если в папке назначения могут быть с такими же именами?
чтобы не затерлись новыми!

помогите подправить эту строчку:

mv /var/mobile/Media/*.PNG /var/mobile/Media/DCIM/100APPLE/

...

и, пожалуйста, не отправляйте читать man (

А почему это не отправлять?
man mv
и находим ответ:
-n, --no-clobber
do not overwrite an existing file

Т.е. ваша команда будет такой:
mv -n /var/mobile/Media/*.PNG /var/mobile/Media/DCIM/100APPLE/

P.S. Прочитал за вас. С вас 500$ за чтение манов вслух с выражением :-)
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Как правильно переместить файлы

Сообщение DaemonTux »

Maximus_V писал(а):
28.03.2013 11:49
С вас 500$ за чтение манов вслух с выражением :-)

А где аудио файл? :)
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Как правильно переместить файлы

Сообщение SLEDopit »

helpmeplease писал(а):
28.03.2013 09:21
и, пожалуйста, не отправляйте читать man (
Если вы боитесь непонятного английского языка, то есть пакет manpages-ru .
Maximus_V писал(а):
28.03.2013 11:49
С вас 500$ за чтение манов
У, как дорого. Я готов читать за 250$ (:
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Maximus_V
Сообщения: 432
ОС: Gentoo, FreeBSD

Re: Как правильно переместить файлы

Сообщение Maximus_V »

SLEDopit писал(а):
28.03.2013 12:11
helpmeplease писал(а):
28.03.2013 09:21
и, пожалуйста, не отправляйте читать man (
Если вы боитесь непонятного английского языка, то есть пакет manpages-ru .

А чтоб научиться пользоваться manpages-ru, нужно смотреть в man, а там непонятные английские буквы. Замкнутый круг.
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: Как правильно переместить файлы

Сообщение sgfault »

Раз уж зашла речь про "правильное" перемещение файлов, я бы хотел задать похожий, хотя и немного более интересный, вопрос.

Задача простая: переместить все файлы из поддиректории в родительскую директорию. Файлы с такими же именами _не_ должны быть перезаписаны, и (самое главное), если совпадения имен были, должна быть возможность однозначно сказать _какие_ файлы не удалось переместить.

Для тестирования решения, я полагаю, будет достаточно корректной работы на следующей директории:

Код: Выделить всё

$ cat create_test.sh
#!/bin/sh

set -euf

mkdir -p dir/b dir/src/b dir/src/src/a dir/src/src/b
echo 'top b' > dir/b/b.tmp
echo '1st b' > dir/src/b/b.tmp
echo '2nd b' > dir/src/src/b/b.tmp
echo '2nd a' > dir/src/src/a/a.tmp


Ну, а теперь, собственно, мои "примечения" по поводу возможных решений.
1. Использовать `mv` видимо не получится совсем. Вот примеры

Код: Выделить всё

$ mv -i src -T .
mv: overwrite `.'? y
mv: cannot move `src' to `.': Device or resource busy

Второй вариант:

Код: Выделить всё

$ mv -vi src/* -t .
mv: overwrite `./b'? n
mv: overwrite `./src'? y
mv: cannot move `src/src' to `./src': Directory not empty

Оба варианта не работает даже вручную. Не говоря уже про то, что эти ответы должны быть автоматическими. Опция '-n' здесь тоже работать не будет, тк она ответит "нет" на все вопросы, а, как видно из "ручных" вариантов, надо отвечать "нет" не на все вопросы.

2. Можно попробовать cp, и на этот раз действительно кое-что получится. Например, можно использовать хардлинки, как индикатор того, скопировался файл или нет:

Код: Выделить всё

$ cp -PRln src/ -T .

И затем я могу посмотреть файлы, которые переместить не удалось:

Код: Выделить всё

$ find -type f -links 1
./src/src/b/b.tmp
./src/b/b.tmp
./b/b.tmp


Если b/b.tmp в dir удалить, то получится вот так:

Код: Выделить всё

$  rm -rf b
$ cp -PRln src/ -T .
$ find -type f -links 1
./src/src/b/b.tmp


Одним словом, если не считать, что решение дурацкое, то все работает. Собственно, чем мне оно не нравится?
- Не очевидное.
- Требует, чтобы фс поддерживала хардлинки.
- Поддиректория src и родительская директория dir должны быть на одной фс.
- Файлы не должны иметь хардлинков изначально.

3. (в этот пункт вы можете вписать свое решение :sleep: )
Спасибо сказали:
Аватара пользователя
Maximus_V
Сообщения: 432
ОС: Gentoo, FreeBSD

Re: Как правильно переместить файлы

Сообщение Maximus_V »

А так ли это надо, строго не переписывать файлы, которые уже есть? Не смог придумать какую-нибудь жизненную ситуацию.
Бывает, что надо скопировать/переместить файлы, не трогая те, которые новее. В этом случае, rsync нам в помощь:

Код: Выделить всё

rsync -avu --verbose dir1/* dir2/*

и чтобы посмотреть, какие файлы не копировались

Код: Выделить всё

rsync -avu --verbose dir1/* dir2/* | grep uptodate

Как-то так, навскидку.
Спасибо сказали:
Аватара пользователя
helpmeplease
Сообщения: 19

Re: Как правильно переместить файлы

Сообщение helpmeplease »

Maximus_V писал(а):
28.03.2013 11:49
А почему это не отправлять?
man mv
и находим ответ:
-n, --no-clobber
do not overwrite an existing file

Т.е. ваша команда будет такой:
mv -n /var/mobile/Media/*.PNG /var/mobile/Media/DCIM/100APPLE/

Огромное спасибо за ответ!
Не то ((

файлы остаются здесь: /var/mobile/Media/ и не перемещаются! (
а должны переместиься и не затронуть файлы в папке назначения.

зы
IMG_0001.PNG в паке назначения с одним содержимым
В папке источнике IMG_0001.PNG с другим.
Спасибо сказали:
Аватара пользователя
Maximus_V
Сообщения: 432
ОС: Gentoo, FreeBSD

Re: Как правильно переместить файлы

Сообщение Maximus_V »

helpmeplease писал(а):
28.03.2013 17:49
Не то ((

файлы остаются здесь: /var/mobile/Media/ и не перемещаются! (
а должны переместиься и не затронуть файлы в папке назначения.

зы
IMG_0001.PNG в паке назначения с одним содержимым
В папке источнике IMG_0001.PNG с другим.

Ну да, если в обоих папках есть файл IMG_0001.PNG с разным содержимым, то он не должен быть затронут и все останется на своих местах. Разве моя команда делает по-другому?
Тогда покажите, пожалуйста, как Вы запускали команду, и какой вывод она дала
А также вывод

Код: Выделить всё

ls первый_каталог
ls второй_каталог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21235
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно переместить файлы

Сообщение Bizdelnick »

mv -b - тоже не то? Тогда надо простенький скриптик сочинить.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
helpmeplease
Сообщения: 19

Re: Как правильно переместить файлы

Сообщение helpmeplease »

то он не должен быть затронут и все останется на своих местах

задача переместить файлы, чтобы в итоге: остались те, которые были и к ним добавились новые.
было 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавились, еще 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG

получилось в папке 6 файлов! ))

может быть проще с помощью CP ? ))
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: Как правильно переместить файлы

Сообщение sgfault »

Maximus_V писал(а):
28.03.2013 17:38
А так ли это надо, строго не переписывать файлы, которые уже есть? Не смог придумать какую-нибудь жизненную ситуацию.

Условия задачи не обсуждаются :rolleyes: Но раз уж вы спросили, то предложенное мной решение, как и сам вопрос, появились достаточно давно (сейчас я просто их вспомнил) в связи с вполне конкретной задачей - git filter-branch --subdirectory-filter удаляет merge --no-ff коммит/#5 "Дополнение Д. Скрипт 'examples/jp_tree_filter.sh'."

Что касается опции '-u', она есть и у `mv`, и у `cp`. Но она, как вы понимаете, не решает задачи.

helpmeplease писал(а):
28.03.2013 18:18
то он не должен быть затронут и все останется на своих местах

задача переместить файлы, чтобы в итоге: остались те, которые были и к ним добавились новые.
было 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавились, еще 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG


Сделав предварительно резервную копию, можете попробовать такой скрипт (обратите внимание, что первую строчку копировать в файл не надо):

Код: Выделить всё

$ cat t.sh
#!/bin/sh

set -euf

dst="$1"
f="$2"

ext="${f##*.}"
bn="$(basename "$f" ".$ext")"
nf="$dst/${bn}.${ext}"
i=2
while [ -e "$nf" ]; do
    nf="$dst/${bn}-${i}.${ext}"
    i=$((i + 1))
done
mv -vnT "$f" "$nf"


и, заменив SRC на исходную директорию, а DST на директорию назначения, запускать его надо так (я предполагаю, что файл со скриптом называется t.sh):

Код: Выделить всё

$ find SRC -type f -exec sh -euf ./t.sh DST {} \;


или так

Код: Выделить всё

$ find SRC -type f -exec sh -euf -c 'for f; do sh ./t.sh DST "$f"; done' sh {} \+


ЗЫ. Если он вдруг все сотрет - не расстраивайтесь, я ведь вас предупредил про резервную копию :huh:
Спасибо сказали:
Аватара пользователя
Maximus_V
Сообщения: 432
ОС: Gentoo, FreeBSD

Re: Как правильно переместить файлы

Сообщение Maximus_V »

helpmeplease писал(а):
28.03.2013 18:18
то он не должен быть затронут и все останется на своих местах

задача переместить файлы, чтобы в итоге: остались те, которые были и к ним добавились новые.
было 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавились, еще 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG

получилось в папке 6 файлов! ))

может быть проще с помощью CP ? ))

То есть эти, добавившиеся три файла, нужно будет переименовать, верно? Иначе в папке 6 таких файлов лежать не смогут...
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как правильно переместить файлы

Сообщение drBatty »

sgfault писал(а):
28.03.2013 15:30
Одним словом, если не считать, что решение дурацкое, то все работает. Собственно, чем мне оно не нравится?

нормальное решение. mv именно так и работает, если можно делать хардлинки, она делает хардлинки, а потом удаляет файл. Решение годное, и вполне очевидное.

Maximus_V писал(а):
29.03.2013 14:07
То есть эти, добавившиеся три файла, нужно будет переименовать, верно?

очевидно - да.

переименовывать умеет и cp и mv.
The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control method may be selected
via the --backup option or through the VERSION_CONTROL environment variable. Here are the values:
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

helpmeplease писал(а):
28.03.2013 18:18
то он не должен быть затронут и все останется на своих местах

задача переместить файлы, чтобы в итоге: остались те, которые были и к ним добавились новые.
было 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавились, еще 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG

получилось в папке 6 файлов! ))


Цирк :rolleyes:

А как вы после достигнутого успеха :rolleyes: станете различать "старый IMG_0001.PNG" и "новый IMG_0001.PNG" ?
Так и станете писать в терминальных командах: "хочу старый IMG_0001.PNG"... :drinks:
Спасибо сказали:
Аватара пользователя
Maximus_V
Сообщения: 432
ОС: Gentoo, FreeBSD

Re: Как правильно переместить файлы

Сообщение Maximus_V »

Olej писал(а):
01.04.2013 12:53
Цирк :rolleyes:

А как вы после достигнутого успеха :rolleyes: станете различать "старый IMG_0001.PNG" и "новый IMG_0001.PNG" ?
Так и станете писать в терминальных командах: "хочу старый IMG_0001.PNG"... :drinks:

Так выше как раз подсказали: для переименования ипользовать опцию -b

Код: Выделить всё

mv --backup -S.OLD /var/mobile/Media/*.PNG /var/mobile/Media/DCIM/100APPLE/
и получим на выходе:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавились, еще 3 файла:
IMG_0001.PNG.OLD
IMG_0002.PNG.OLD
IMG_0003.PNG.OLD
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

Maximus_V писал(а):
02.04.2013 11:19
и получим на выходе:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавились, еще 3 файла:
IMG_0001.PNG.OLD
IMG_0002.PNG.OLD
IMG_0003.PNG.OLD


Ужос :laugh: - как называют подобное в "Городок":
теперь файлы *.PNG потеряли свою функциональность - работающие с ними утилиты не распознают их как файлы, содержащие информацию .PNG, разрушились ассоциации.


P.S.
- некоторые программы для старых копий (бэкапов) дописывают тильду ('~') к имени;
- в старых многопользовательских системах (RSX-11) использовались "версии" файлов, когда к имени дописывался последовательный номер: IMG_0003.3.PNG
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как правильно переместить файлы

Сообщение drBatty »

Olej писал(а):
02.04.2013 12:55
Ужос laugh.gif - как называют подобное в "Городок":

не вижу никакого "ужоса".

Olej писал(а):
02.04.2013 12:55
теперь файлы *.PNG потеряли свою функциональность - работающие с ними утилиты не распознают их как файлы, содержащие информацию .PNG, разрушились ассоциации.

подумаешь - это всё равно картинки, как их не называй. Расширения нужны только для пользователей MS-DOS. Вы можете поправить проблему в своём ФМ, добавив шаблон *.PNG.OLD, и у вас всё будет работать как раньше.
Olej писал(а):
02.04.2013 12:55
- в старых многопользовательских системах (RSX-11) использовались "версии" файлов, когда к имени дописывался последовательный номер: IMG_0003.3.PNG

а вы сами man mv читали? Почитайте.
вот вам, если найти не смогли:
`-b'
`--backup[=METHOD]'
Make a backup of each file that would otherwise be overwritten or
removed. Without this option, the original versions are destroyed.
Use METHOD to determine the type of backups to make. When this
option is used but METHOD is not specified, then the value of the
`VERSION_CONTROL' environment variable is used. And if
`VERSION_CONTROL' is not set, the default backup type is
`existing'.

Note that the short form of this option, `-b' does not accept any
argument. Using `-b' is equivalent to using `--backup=existing'.

This option corresponds to the Emacs variable `version-control';
the values for METHOD are the same as those used in Emacs. This
option also accepts more descriptive names. The valid METHODs are
(unique abbreviations are accepted):

`none'
`off'
Never make backups.

`numbered'
`t'
Always make numbered backups.

`existing'
`nil'
Make numbered backups of files that already have them, simple
backups of the others.

`simple'
`never'
Always make simple backups. Please note `never' is not to be
confused with `none'.


`-S SUFFIX'
`--suffix=SUFFIX'
Append SUFFIX to each backup file made with `-b'. If this option
is not specified, the value of the `SIMPLE_BACKUP_SUFFIX'
environment variable is used. And if `SIMPLE_BACKUP_SUFFIX' is not
set, the default is `~', just as in Emacs.

т.е. цифирьками умеют называть и mv и cp.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

drBatty писал(а):
02.04.2013 14:05
Olej писал(а):
02.04.2013 12:55
теперь файлы *.PNG потеряли свою функциональность - работающие с ними утилиты не распознают их как файлы, содержащие информацию .PNG, разрушились ассоциации.

подумаешь - это всё равно картинки, как их не называй. Расширения нужны только для пользователей MS-DOS. Вы можете поправить проблему в своём ФМ, добавив шаблон *.PNG.OLD, и у вас всё будет работать как раньше.

А не нужно так уж высокомерно относиться к "пользователям MS-DOS"(с) :rolleyes:

В UNIX есть такая утилита, к примеру, как import ... если слышали :rolleyes: , сугубо консольная ... не из MS-DOS-а ...
Вот когда она сохраняет изображение в файл, то если файл назван *.png - то и формат содержимого будет .png, а если файл назван *.jpg - то и формат содержимого будет .jpg ... и т.д. ... там много форматов.

Это только один из многих примеров того, что ассоциации файлов - это не только "для пользователей MS-DOS" :drinks: :laugh:
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21235
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно переместить файлы

Сообщение Bizdelnick »

Olej писал(а):
02.04.2013 14:37
В UNIX есть такая утилита, к примеру, как import ... если слышали rolleyes.gif , сугубо консольная ... не из MS-DOS-а ...
Вот когда она сохраняет изображение в файл, то если файл назван *.png - то и формат содержимого будет .png, а если файл назван *.jpg - то и формат содержимого будет .jpg ... и т.д. ... там много форматов.

Неудачный пример.
(man import) писал(а):By default, 'file' is written in the MIFF image format. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output.
Суффикс - всего лишь один из возможных способов указания формата для import, причём имеющий низший приоритет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

Bizdelnick писал(а):
02.04.2013 15:21
(man import) писал(а):By default, 'file' is written in the MIFF image format. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output.
Суффикс - всего лишь один из возможных способов указания формата для import, причём имеющий низший приоритет.


Да, один из, но чаще всего ним именно и пользуются, потому, что это самый быстрый и простой способ (это я говорю не "с потолка", а наблюдая разработчиков с которыми работал).

Ещё один пример (если тот так неудачен) - GCC :rolleyes: :
- файлы *.c он компилирует как ANSI C;
- файлы *.cc он компилирует как C++;
Согласитесь, то и другое - большая разница.



А вообще - вся тема выросла из-за совершенно бессмысленной и порочной самой формулировки изначального вопроса:
helpmeplease писал(а):
28.03.2013 09:21
Как правильно переместить файлы, если в папке назначения могут быть с такими же именами?
чтобы не затерлись новыми!


... и не нужно в этом случае изобретать "костыли" с помощью mv ... или любых других инструментов, а нужно сказать одну единственную фразу: "В UNIX, да и в других ОС тоже, полное имя каждого файла - уникально, и в системе не может быть 2-х файлов с совпадающими именами. По определению не может!".
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: Как правильно переместить файлы

Сообщение sgfault »

Olej писал(а):
02.04.2013 15:38
helpmeplease писал(а):
28.03.2013 09:21
Как правильно переместить файлы, если в папке назначения могут быть с такими же именами?
чтобы не затерлись новыми!


... и не нужно в этом случае изобретать "костыли" с помощью mv ... или любых других инструментов, а нужно сказать одну единственную фразу: "В UNIX, да и в других ОС тоже, полное имя каждого файла - уникально, и в системе не может быть 2-х файлов с совпадающими именами. По определению не может!".

Действительно, не нужны. Но только не "костыли", а рассуждения о unix. И сказать нужно, и правда, одну единственную фразу, только немного не ту, что вы написали, и не автору вопроса, а троллямучастникам обсуждения: перечитайте внимательнее первоначальный вопрос. Я даже приведу его здесь, с выделением:

helpmeplease писал(а):
28.03.2013 09:21
в папке /var/mobile/Media/
файлы:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG

нужно переместить их в папку /var/mobile/Media/DCIM/100APPLE/
где могут оказаться файлы с такими же именами:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG

как переместить, что бы перемещаемые файлы переименовывались в
IMG_0001-2.PNG
IMG_0002-2.PNG
IMG_0003-2.PNG

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21235
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно переместить файлы

Сообщение Bizdelnick »

Olej писал(а):
02.04.2013 15:38
Ещё один пример (если тот так неудачен) - GCC:
- файлы *.c он компилирует как ANSI C;
- файлы *.cc он компилирует как C++;
Согласитесь, то и другое - большая разница.

Согласитесь, и gcc можно множеством разных способов указать, как ему компилировать файл. Например, запускать его как cc или c++ или передать язык с опцией -x.
В общем, в системах, свободных от наследства MS DOS, правильный суффикс может облегчить жить, но практически никогда не является обязательным. Насколько суффикс важен в данном конкретном случае - знать может только ТС.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

sgfault писал(а):
02.04.2013 15:56
перечитайте внимательнее первоначальный вопрос. Я даже приведу его здесь, с выделением:


Да ну? :crazy:

А как же это:
helpmeplease писал(а):
28.03.2013 18:18
задача переместить файлы, чтобы в итоге: остались те, которые были и к ним добавились новые.
было 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавились, еще 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
получилось в папке 6 файлов! ))

3 ... и ещё + 3 ... получилось 6 ... "А и Б сидели на трубе..." :cray:
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Как правильно переместить файлы

Сообщение pelmen »

Ну так ведь можно же создать каталог "повторяющиеся", где и будут лежать другие файлы с уже использованными в исходном каталоге именами. То есть получится так:
было 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
к ним добавился каталог "повторяющиеся", в котором еще 3 файла:
IMG_0001.PNG
IMG_0002.PNG
IMG_0003.PNG
получилось всего в папке 6 файлов
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как правильно переместить файлы

Сообщение drBatty »

Olej писал(а):
02.04.2013 14:37
В UNIX есть такая утилита, к примеру, как import ... если слышали

слышал:
import - saves any visible window on an X server and outputs it as an image file

Olej писал(а):
02.04.2013 14:37
сугубо консольная

ЩИТО?
Olej писал(а):
02.04.2013 14:37
Вот когда она сохраняет изображение в файл, то если файл назван *.png - то и формат содержимого будет .png, а если файл назван *.jpg - то и формат содержимого будет .jpg ... и т.д. ... там много форматов.

да. И что? Кстати: PNG ≠ png.
Olej писал(а):
02.04.2013 14:37
Это только один из многих примеров того, что ассоциации файлов - это не только "для пользователей MS-DOS"

у вопрошающего оно уже поломано. Т.ч. ничего страшного.



Olej писал(а):
02.04.2013 15:38
полное имя каждого файла - уникально, и в системе не может быть 2-х файлов с совпадающими именами.

я вас расстрою - может. Как это не покажется странным. Например можете сейчас удалить своё браузер (не выключая), и скачать туда-же новый. В каталоге будет два файла сразу - старый и новый. (видно будет конечно только один).

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

Bizdelnick писал(а):
02.04.2013 15:57
Согласитесь, и gcc можно множеством разных способов указать, как ему компилировать файл. Например, запускать его как cc или c++ или передать язык с опцией -x.

Можно... только ... я не знаю, как часто вы пишете С-код, я, например, делаю это ежедневно, без выходных, и так несколько десятилетий подряд :drinks: ... и я вам, ко стыду своему, сознаюсь, что -x я использовал при этом не чаще, чем 1 раз в 3 года :rolleyes:

Bizdelnick писал(а):
02.04.2013 15:57
В общем, в системах, свободных от наследства MS DOS, правильный суффикс может облегчить жить, но практически никогда не является обязательным. Насколько суффикс важен в данном конкретном случае - знать может только ТС.

Обязательным - конечно не является...
Только ассоциации файлов с суфиксом - это вовсе не "тяжёлое наследство MS DOS", вы можете мне не поверить, но и до MS DOS были ... и RT-11, и RSX-11 (UNIX, кстати, во многом вырос из RSX-11 и наследовал её привычки) и всякие другие ... ФОБОС, например :rolleyes: - и там везде файлы .f отличались от .pas, а те, в свою очередь, от .lst ...

Если вам и предыдущих примеров мало для того, чтобы согласиться, что ассоциации файлов трогать не стоит без нужды, то ещё совсем другой пример - возьмите mc:
- переименуйте hello.c в hello.c.001 ...
- у вас "поплывёт" цветовая разметка файлов на панелях mc ...
- у вас отменится цветовая подсветка синтаксиса для такого файла в редакторе mc (для него это уже не С код!)
- ради чего?

И это относится не к какому-то конкретному файл-менеджеру и его настройкам (как кто-то здесь предлагал), а к системе вообще ... - к устойчивым ассоциациям суффиксов и типов файлов, ... а поэтому и не трогать лучше ассициации в настройках отдельных файл-менеджеров.
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

drBatty писал(а):
02.04.2013 16:47
да. И что? Кстати: PNG ≠ png.
Olej писал(а):
02.04.2013 14:37
Это только один из многих примеров того, что ассоциации файлов - это не только "для пользователей MS-DOS"

у вопрошающего оно уже поломано. Т.ч. ничего страшного.


Ну это уже к делу вообще не относится - это вы уже, почтенный, просто юлите как вша на гребешке :crazy:

drBatty писал(а):
02.04.2013 16:47
Olej писал(а):
02.04.2013 15:38
полное имя каждого файла - уникально, и в системе не может быть 2-х файлов с совпадающими именами.

я вас расстрою - может. Как это не покажется странным. Например можете сейчас удалить своё браузер (не выключая), и скачать туда-же новый. В каталоге будет два файла сразу - старый и новый. (видно будет конечно только один).

Не будет 2-х файлов - один из них будет отображением страниц RAM на дисковое пространство (если это вам о чём-то скажет :) ), в записях файла каталога и в i-node - будет только 1 файл.
Вы мне примерчик с "ls" покажите ... поднатужьтесь? :cray:
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как правильно переместить файлы

Сообщение Olej »

P.S.
drBatty писал(а):
02.04.2013 16:47
Например можете сейчас удалить своё браузер (не выключая), и скачать туда-же новый.

На том и завершим ... высказывание мнений :console: - всё, что начинается дальше, уже и не интересно, и даже не весело...

За сим примите... :drinks:

P.P.S
Ну ... а с вытиранием браузера ... - это вы уже сами, без меня ... поупражняйтесь. :blush:
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21235
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как правильно переместить файлы

Сообщение Bizdelnick »

iУведомление от модератора
Предлагаю завершить высказывание мнений до тех пор, пока топикстартер не ответит, устраивает ли его какой-либо из предложенных вариантов, и если нет - то чем именно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: