Некоторое время назад я купил новый 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, исчезло (в том числе плохо расположенное резервное копирование, которое я сделал), некоторые из которых были довольно важными. Есть ли способ вернуть его обратно?
Использование глобусных символов типа *
должно быть сделано очень аккуратно , и вы должны знать, как они расширяются вашей оболочкой и передаются вашей команде в качестве аргументов.
*
будет расширено до включения файлов и каталогов в текущую директорию .
.*
будет расширена до включения текущей директории .
и каталог на один уровень выше .
.
.[a-z]*
расширяется до включения скрытых файлов/каталогов в текущую директорию с первой строчной буквой в их именах.
Например, чтобы увидеть, как .*
будет расширен на вашей системе, запустите набор -x
, затем запустите:
ls .*
или используйте echo
, чтобы распечатать расширенный список так:
echo .*
или используйте readlink -f
, чтобы получить полный путь к расширенному списку так:
readlink -f .*