Как вернуть файлы после «MV *. *»?

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

mv * .*

, но теперь я не могу их найти. Я пытался использовать:

mv .* *

Но ничего не произошло (была показана ошибка). Если я бегу:

ls -la

Это показывает:

total 8  
drwxrwxr-x 2 abhishek abhishek 4096 Mar  9 20:46 .  
drwxrwxr-x 4 abhishek abhishek 4096 Mar  9 20:46 ..  

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

11
задан 10 March 2021 в 19:38

1 ответ

Ваши файлы не скрыты, вы переместили все файлы (и каталоги, если какой-либо) один каталог UP.

Это происходит потому, что MV *. * не будет работать, как вы думаете, это будет. Команда MV будет перемещать только один файл в один файл (переименовать) или переместить один или несколько файлов в каталог. Он не будет перемещать несколько файлов в несколько файлов с некоторыми умными переименами.


Что случилось?

Давайте предположим, что у нас есть один каталог и 3 файла в нашем каталоге:

dir1
file1
file2
file3

Некоторые оболочки (например, Bash , Dash , ...) Разверните свою команду:

mv dir1 file1 file2 file3 . ..

Ваша расширенная команда соответствует второй форме синопсировки, вы найдете в MAN MV :

MV [Опция] ... Справочник ... Directory

Обратите внимание на . и .. :

  • . - текущий каталог,
  • .. - один каталог вверх.

Команда означает: MOVE DIR1 , , , , , и и file3 и . - .. ; Он также будет иметь в основном дать ошибку, что-то вроде:

mv: cannot move '.' to '../.'

, но, учитывая, что у вас есть разрешение на запись в этом каталоге, все остальные файлы были перемещены. Вы можете найти свои файлы в .. (= один каталог вверх). Однако файлы с той же именем были перезаписаны, и вы не будете знать, какие файлы были в каком каталоге ранее.


Если у вас был подкаталог .hidden-dir , он бы расширился до:

mv dir1 file1 file2 file3 . .. .hidden-dir

, то все файлы были бы перемещены в .hidden-dir . Однако это кажется не так для вас, потому что вы видели бы .hidden-dir в вашем LS -LA выхода.


Как исправить

Запустить:

mv ../dir1 ../file1 ../file2 ../file3 .

Однако вам нужно знать имена.


Что вы должны были использовать

mmv '*' '.#1'

или

rename 's/^/./' *
42
ответ дан 18 March 2021 в 23:27

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

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