¿Existe un script / aplicación de Linux que, en lugar de eliminar archivos, los mueva a una ubicación especial de "papelera"? Me gustaría esto como un reemplazo para rm
(tal vez incluso alias el último; hay pros y contras para eso).
Por "basura" me refiero a una carpeta especial. Un solo mv $* ~/.trash
paso es el primer paso, pero idealmente esto también debería manejar la eliminación de varios archivos del mismo nombre sin sobrescribir los archivos desechados más antiguos y permitir restaurar los archivos a su ubicación original con un comando simple (una especie de "deshacer"). Además, sería bueno que la basura se vacíe automáticamente al reiniciar (o un mecanismo similar para evitar un crecimiento sin fin).
Existen soluciones parciales para esto, pero la acción de "restauración" en particular no es trivial. ¿Existen soluciones existentes para esto que no se basan en un sistema de basura desde un shell gráfico?
(Como comentario aparte, ha habido discusiones interminables sobre si este enfoque está justificado, en lugar de usar copias de seguridad frecuentes y VCS. Si bien esas discusiones tienen un punto, creo que todavía hay un nicho para mi solicitud).
gvfs-trash
en el pasado, pero nunca tuve la necesidad de restaurar desde la línea de comandos hasta que despertó mi curiosidad. La respuesta a la pregunta vinculada puede ser de ayuda.Respuestas:
Hay una especificación (borrador) para la Papelera en freedesktop.org. Aparentemente es lo que generalmente implementan los entornos de escritorio.
Una implementación de línea de comandos sería trash-cli . Sin haber visto más de cerca, parece proporcionar la funcionalidad que desea. Si no, díganos hasta qué punto esto es solo una solución parcial.
En lo que respecta al uso de cualquier programa como reemplazo / alias
rm
, existen buenas razones para no hacerlo. Lo más importante para mí son:rm
las opciones y actuar en consecuenciafuente
rm
para no poder usarla accidentalmente (todavía hay/bin/rm
en caso de que realmente la necesite).Trash-cli es una aplicación de Linux que se puede instalar usando apt-get en Ubuntu o yum en Fedora. El uso del comando
trash listOfFiles
moverá lo especificado a su papelera.fuente
Las respuestas anteriores mencionan comandos
trash-cli
yrmtrash
. Ninguno de esos se encuentra por defecto en Ubuntu 18.04, pero el comandogio
es.gio help trash
Salidas dominantes :Lo probé usando
gio trash FILENAME
en la línea de comando, y funciona igual que seleccioné el archivo en el explorador de archivos e hice clic en el botón DEL: el archivo se mueve a la carpeta Papelera del escritorio. (El comando no solicita confirmación aunque no utilicé la-f
opción).La eliminación de archivos de esta manera es reversible, mientras que ser más conveniente que la redefinición de
rm
serrm -i
para la seguridad y tener que confirmar cada eliminación, que todavía le deja fuera de suerte si se confirma accidentalmente una deleción que no debería tener.Agregué
alias tt='gio trash'
a mi archivo de definiciones de alias;tt
es un mnemotécnico para To Trash.Agregado en edición el 27-06-2018: en las máquinas del servidor, no hay equivalente de un directorio de basura. He escrito el siguiente script de Bash que hace el trabajo; en máquinas de escritorio, usa
gio trash
, y en otras máquinas, mueve los archivos dados como parámetro (s) a un directorio de basura que crea. Guión actualizado el 2019-09-05.fuente
Hay una pequeña utilidad llamada rmtrash que hace esto.
No parece responder a parámetros como
-r
o-f
(parece que esencialmente solo está moviendo el archivo / directorio al directorio ~ / .Trash), pero no anulará los archivos con el mismo nombre (agrega "Copiar" a archivos / directorios con el mismo nombre).Para instalar con cerveza
fuente
Aquí hay un sistema de basura rápido y sucio que hace frente a los conflictos de nombres e incluso permite múltiples archivos eliminados en la misma ruta siempre que no elimine más de un archivo por segundo.
Advertencia: escribí este código directamente en mi navegador. Probablemente esté roto. No lo use en datos de producción.
Problemas conocidos:
trash
debería hacer frente a las nuevas líneas en los nombres de archivo, perountrash
no lo hace porque se basagrep
y las nuevas líneas no se escapan en el archivo de metadatos.fuente
Comience definiendo una
move_to_trash
función:Entonces alias
rm
a eso:Siempre se puede llamar de edad
rm
al escapar con una barra invertida, como esto:\rm
.No sé cómo vaciar el directorio de la papelera al reiniciar (dependiendo de su sistema, es posible que tenga que buscar en los
rc*
scripts), pero también podría valer la pena crear unacron
tarea que vacíe el directorio periódicamente.fuente
rm
y ahí van tus archivos.del
Podría ser una mejor opción.Puedes usar mi del:
http://fex.belwue.de/fstools/del.html
del mueve archivos en un subdirectorio .del / (y viceversa)
fuente
En KDE 4.14.8 utilicé el siguiente comando para mover archivos a la papelera (como si se hubiera eliminado en Dolphin):
Apéndice I: encontré sobre el comando con
Apéndice II: la función (luego fuente en su .bashrc)
fuente