Расположение файлов после команды mv без абсолютных путей

785
Marek Zak

Я случайно запустил mvкоманду в папке, чтобы переименовать файлы. Но я забыл указать абсолютный путь (я только что сделал mv old_name new_name). Теперь файлы исчезли. Есть идеи, где эти файлы?

Спасибо за любую помощь.

0
Когда вы запускаете команду mv без указания нового расположения папки, все, что она делает, это переименовывает файл, и он остается в текущем каталоге. Вы вообще не видите переименованный файл в той же директории, где он был изначально? n8te 7 лет назад 0
Да, я не вижу файлы в папке. Marek Zak 7 лет назад 0
Хорошо, наберите `history`, и вы увидите, какую именно команду перемещения вы действительно выполнили. Используйте `историю | less`, если вы набрали так много, вы больше не сможете видеть историю полностью. - Вы запускали эту команду несколько раз для разных файлов с одним и тем же «новым_имением»? djsmiley2k 7 лет назад 1
если новое имя имеет точку, оно будет скрыто, и вам нужно будет использовать `ll`, чтобы показать phuclv 7 лет назад 0
`ll` - псевдоним, который может не существовать, используйте` ls -a` для отображения всех файлов, включая те, которые начинаются с. (Скрытый). djsmiley2k 7 лет назад 1
Да, я запускаю команду для нескольких файлов в цикле. Я проверил скрипт и понял, что мне не хватает «$» перед переменной, поэтому я переименовал все файлы в имя переменной. Буду восстанавливать из резервных копий. Чувствую себя так глупо, спасибо за помощь. Marek Zak 7 лет назад 1
Нет проблем, рад, что у вас есть резервные копии, иначе это была бы совсем другая история! djsmiley2k 7 лет назад 0

2 ответа на вопрос

4
djsmiley2k

Они будут в одном и том же каталоге, если вы не указали какое-либо обозначение каталога, например .. или ../ ..

Так что mv oldFile newFileостается в том же каталоге (в основном переименовывая его),

Примечание : если newFile уже существует, вы просто перезаписали его - mv не будет спрашивать перед этим, если вы не предоставите -iв качестве аргумента.

mv oldFile ../newFile перемещает его в родительский каталог,

mv oldFile ./existingSubDirectory/newFile перемещает его в каталог существующий SubDirectory с именем newFile,

mv oldFile -p ./newSubDirectory/newFile создает новый подкаталог с именем «newSubDirectory» и помещает в него новый файл.

Вы можете объединиться, чтобы сделать какой-то очень странный (и, как правило, бессмысленный) обход каталога, например, mv oldFile ././././../../dev/nullесли вы действительно этого хотите, но в этом нет особого смысла.

1
Seth

Если вы не указали полный путь, они находятся в позиции относительно пути, над которым вы работали.

Если вы находитесь в своем каталоге users ( /home/user) и работаете mv myfile newfile, находясь в этом каталоге, файл переименовывается в newfile. Если он существует, он перезаписывается. Если вы указали часть пути ( mv myfile something/newfile) и папка не существует, вы получите ошибку. Если бы вы предоставили -pпапку, somethingона была бы создана.

Если вы знаете имя, которое можете использовать, findили какую-нибудь другую утилиту для поиска файла (в Debian вы можете использовать locate).

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