Существует ли сценарий / приложение для Linux, которое вместо удаления файлов перемещает их в специальную «корзину»? Я хотел бы это как замену rm
(может быть, даже псевдоним последнего; есть плюсы и минусы для этого).
Под «мусором» я подразумеваю специальную папку. Одиночный mv $* ~/.trash
файл - это первый шаг, но в идеале он также должен обрабатывать удаление нескольких файлов с одним и тем же именем без перезаписи старых загруженных файлов и позволять восстанавливать файлы в их исходное местоположение с помощью простой команды (своего рода «отмена»). Кроме того, было бы неплохо, если бы мусор автоматически очищался при перезагрузке (или аналогичном механизме, предотвращающем бесконечный рост).
Частичные решения для этого существуют, но, в частности, действие «восстановить» не тривиально. Существуют ли какие-либо решения для этого, которые не основаны на мусорной системе из графической оболочки?
(Кроме того, были бесконечные дискуссии о том, оправдан ли этот подход, а не об использовании частых резервных копий и VCS. Хотя в этих дискуссиях есть смысл, я считаю, что для моего запроса еще есть ниша).
gvfs-trash
в прошлом, но никогда не нуждался в восстановлении из командной строки, пока вы не зажгли мое любопытство. Ответ на связанный вопрос может быть полезным.Ответы:
Существует спецификация (черновик) для мусора на freedesktop.org. Это, по-видимому, то, что обычно реализуется в настольных средах.
Реализация командной строки была бы trash-cli . Похоже, что если вы не посмотрите поближе, вы получите желаемую функциональность. Если нет, скажите нам, насколько это только частичное решение.
Что касается использования любой программы в качестве замены / псевдонима
rm
, есть веские причины не делать этого. Наиболее важными для меня являются:rm
параметры и действовать соответственноисточник
rm
поэтому я не могу использовать его случайно (все еще есть/bin/rm
случай, если он мне действительно нужен).Trash-cli - это приложение для Linux, которое можно установить с помощью apt-get в Ubuntu или yum в Fedora. Использование команды
trash listOfFiles
переместит указанное в вашу корзину для мусора.источник
В предыдущих ответах упоминаются команды
trash-cli
иrmtrash
. Ни один из них не найден по умолчанию в Ubuntu 18.04, но командаgio
есть. Командныеgio help trash
выходы:Я протестировал использование
gio trash FILENAME
в командной строке, и он работает так же, как я выбрал файл в браузере файлов и нажал кнопку DEL: файл перемещается в папку «Корзина» на рабочем столе. (Команда не запрашивает подтверждения, хотя я не использовал эту-f
опцию.)Удаление файлов таким образом , является обратимым, в то же время более удобно , чем переопределение
rm
бытьrm -i
для безопасности и того , чтобы подтвердить удаление каждого, который по- прежнему оставляет вас не повезло , если вы случайно подтверждения удаления вы не должны иметь.Я добавил
alias tt='gio trash'
в мой файл определения псевдонимов;tt
это мнемоника To To Trash.Добавлено в редакцию 2018-06-27: на серверах нет эквивалента каталога мусорной корзины. Я написал следующий скрипт Bash, который делает эту работу; на настольных компьютерах он использует
gio trash
, а на других машинах перемещает файл (ы), заданный в качестве параметра (ов), в созданный каталог. Сценарий обновлен 2019-09-05.источник
Есть небольшая утилита под названием rmtrash, которая делает это.
Похоже, что он не реагирует на параметры вроде
-r
или-f
(похоже, он просто перемещает каталог file / в каталог ~ / .Trash), но он не переопределяет файлы с тем же именем (он добавляет «Копировать» в одноименные файлы / каталоги).Для установки с заваркой
источник
Вот быстрая и грязная система мусора, которая справляется с конфликтами имен и даже позволяет нескольким удаленным файлам по одному и тому же пути, если вы не удаляете более одного файла в секунду.
Предупреждение: я набрал этот код прямо в своем браузере. Это вероятно сломано. Не используйте его для производственных данных.
Известные проблемы:
trash
должен справляться с символами новой строки в именах файлов, ноuntrash
не потому, что он основан наgrep
символах новой строки и не экранируется в файле метаданных.источник
Начнем с определения
move_to_trash
функции:Тогда псевдоним
rm
к этому:Вы всегда можете позвонить старым
rm
вытекания его с обратной косой черты, например:\rm
.Я не знаю, как сделать каталог мусора пустым при перезагрузке (в зависимости от вашей системы, вам, возможно, придется изучить
rc*
сценарии), но также может быть целесообразным созданиеcron
задачи, которая периодически очищает каталог.источник
rm
и ваши файлы.del
может быть лучшим выбором.Вы можете использовать мой Del:
http://fex.belwue.de/fstools/del.html
del перемещает файлы в подкаталоге .del / (и обратно)
источник
В KDE 4.14.8 я использовал следующую команду для перемещения файлов в корзину (как если бы они были удалены в Dolphin):
Приложение I: я узнал о команде с
Приложение II: функция (затем ее источник в вашем .bashrc)
источник