cp .* /home/name стерли все файлы в /home/name

Некоторое время назад я купил новый ssd для своего ноутбука, так что я переместил все на новый диск и пользовался им некоторое время без проблем. Я решил вставить старый диск обратно в свой ноутбук, и вставить новый ssd в разъем nvme-USB. Я хотел скопировать свои личные файлы, но не был уверен, что все пойдет по плану, так что я переместил все в /home/name/oldstuff, в новую папку, так что я мог вернуться. Я начал с mv вместо cp по ошибке мозга:

cd /media/drive/home/name
mv * /home/name

но это пропустило все файлы, начиная с "...так что я сделал

cp .* /home/name

Я начал получать ошибки, связанные с разрешениями вещей в относительном пути ./... /другое имя, и я предположил, что самое безопасное - это попасть CTRL+C, а затем сделал

cp .[a-z]* /home/name

*, когда это было завершено, все, что было в /home/name, исчезло (в том числе плохо расположенное резервное копирование, которое я сделал), некоторые из которых были довольно важными. Есть ли способ вернуть его обратно?

1
задан 15 March 2021 в 10:49

1 ответ

Использование глобусных символов типа * должно быть сделано очень аккуратно , и вы должны знать, как они расширяются вашей оболочкой и передаются вашей команде в качестве аргументов.

  • * будет расширено до включения файлов и каталогов в текущую директорию .

  • .* будет расширена до включения текущей директории . и каталог на один уровень выше . .

  • .[a-z]* расширяется до включения скрытых файлов/каталогов в текущую директорию с первой строчной буквой в их именах.

Например, чтобы увидеть, как .* будет расширен на вашей системе, запустите набор -x, затем запустите:

ls .*

или используйте echo, чтобы распечатать расширенный список так:

echo .*

или используйте readlink -f, чтобы получить полный путь к расширенному списку так:

readlink -f .*
1
ответ дан 18 March 2021 в 23:26

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

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