Файлы, отсутствующие после использования mv команда

Я работал

/$ sudo mv -f -i FileSystem/* 

После использования команды отсутствуют все мои файлы. Куда мои файлы перешли в?

1
задан 2 December 2019 в 10:43

2 ответа

Файлы в globbed папке (FileSystem) будет рассматривать раковина как список аргументов эти mv команда, и таким образом, последний файл/папка в списке будет прочитан как место назначения.

  • , Если бы у Вас было всего два файла, mv, заменил бы второе первым после побуждения для разрешений переписать.
  • , Если последний товар в возвращенном списке является папкой, mv, команда переместит все остальное в рассматриваемой папке.

кажется вероятным, что недостающие файлы расположены в последней папке, которая эти FileSystem/* произвела бы в то время, когда командой управляли.

Рассматривают следующую испытательную папку, содержащую точно два файла, где, управляя командой Вы перечислили, попытается переписать первый файл со вторым (я добавил -v в иллюстративных целях):

~$ ls testdir
test1.txt  test2.txt

sudo mv -f -i -v testdir/*
mv: overwrite 'testdir/test2.txt'? y
renamed 'testdir/test1.txt' -> 'testdir/test2.txt'

В другом сценарии, где папка является последней в списке файлов, это перемещает все в test_folder (поскольку это - последний возвращенный товар и рассматривается как место назначения mv команда) как так:

$ ls testdir/
empty_folder1  test1.txt  test2.txt  test_folder

Все Ваши файлы будут перемещены в последний товар в списке (test_folder в этом примере)

$ sudo mv -f -i -v testdir/*
renamed 'testdir/empty_folder1' -> 'testdir/test_folder/empty_folder1'
renamed 'testdir/test1.txt' -> 'testdir/test_folder/test1.txt'
renamed 'testdir/test2.txt' -> 'testdir/test_folder/test2.txt'
0
ответ дан 7 December 2019 в 13:13

Эта команда испытывает недостаток в месте назначения:

sudo mv -f -i FileSystem/* 

из-за расширения * mv будет использовать ПОСЛЕДНЕЕ, которое оно находит, чтобы справочник переместил его в (или файл были только 2). Пример:

touch 1 2 3 4 5 6 7 8
$ mv *
mv: target '8' is not a directory

Это ошибки, потому что 8 не справочник. Последний в Вашей команде, вероятно, был справочником, таким образом, это переместит все файлы в тот справочник. Или если эти mv состоит из 2 файлов, это переместится один через другой.

Также -

ls FileSystem

и у этого должен все еще быть 1 товар, там являющийся справочником, у которого есть результат Вашего mv. Следите за этим из-за эти -f (сила) и если это были 2 файла, Вы удалили один и не будете в состоянии возвратить его. Вы должны были бы восстановить резервную копию.

Пример последнего:

$ ls
1  2
$ mv *
$ ls
2

Это только происходит, когда есть ДВА файла.

1 ошибка

ls
1
$ mv *
mv: missing destination file operand after '1'
Try 'mv --help' for more information.

3 и больше ошибки также (как с этими 8 примерами файлов выше), ЕСЛИ последний не существующий справочник:

$ touch 1 2 3 4 5 6
$ mkdir 7
$ mv *
$ ls
7
$ ls 7
1  2  3  4  5  6
2
ответ дан 7 December 2019 в 13:13

Другие вопросы по тегам:

Похожие вопросы: