Hago mucho trabajo terminal, y hoy tuve la experiencia de escribir
rm fileInQuestion.txt
Antes de descubrir que realmente necesitaba fileInQuestion.txt. Si hubiera eliminado en la GUI, lo habría sacado de la Papelera. Me gustaría saber si es posible sobrecargar 'rm' en la Terminal de tal manera que envíe el archivo / archivos a la Papelera al salir.
macos
command-line
Joe
fuente
fuente
Respuestas:
No aconsejaría aliasing
rm
amv
como se podría conseguir en el hábito derm
archivos no borrar de forma permanente y que tenga problemas en otros equipos o bajo otras cuentas de usuario cuando no desaparezca permanentemente.Escribí un conjunto de
bash
secuencias de comandos que añadir más herramientas de línea de comandos X-como Mac OS (además de un número de los que ya vienen implementadas comoopen
,pbcopy
,pbpaste
, etc.), lo más importantetrash
. Mi versión detrash
hará todas las cosas correctas que el aliasingrm
no hará (y espero que nada malo, pero lo he estado usando en mis propias Mac durante algunos años sin ninguna pérdida de datos), incluyendo: cambiar el nombre del archivo como lo hace Finder si ya existe un archivo con el mismo nombre, colocar los archivos en la carpeta Papelera correcta en volúmenes externos; también tiene algunas ventajas adicionales, como: intenta usar AppleScript cuando está disponible para que obtenga el agradable sonido de la basura y demás (pero no lo requiere, por lo que aún puede usarlo a través de SSH cuando ningún usuario ha iniciado sesión), puede darle el tamaño de la basura en todos los volúmenes.Puede obtener mi suite de herramientas-osx de mi sitio o la última y mejor versión del repositorio de GitHub .
También hay un
trash
comando desarrollado por Ali Rantakari , pero no lo he probado yo mismo.fuente
trash
Rantakari durante bastante tiempo y realmente puedo dar fe de ello. Está compilado Objective-C y utiliza inteligentemente las API estándar del sistema de archivos y, si falla (es decir, el usuario no tiene suficientes derechos), llama a Finder para que elimine los archivos (solicitando efectivamente la autenticación). Puede leer más información detrash
partir hasseg.org/blog .brew install trash
.trash
comando disponible a través de Homebrew es el de Alai Rantakari (ver labrew
fórmula ).brew remove trash
y luegobrew install trash
.La herramienta de línea de comandos de la papelera se puede instalar a través de
brew install trash
.Le permite restaurar archivos basura a través de la línea de comandos o el Finder.
fuente
port install trash
brew install trash
, obtengo esto: pastebin.com/N92cM7d8brew update
primero? Funciona bien de mi parte.Tengo un ejecutable llamado
rem
en algún lugar de mi$PATH
con los siguientes contenidos:EDITAR: el código a continuación es una versión revisada y mejorada en colaboración con Dave Abrahams :
Se comporta exactamente de la misma manera que eliminar del Finder. (Vea la publicación del blog aquí ).
fuente
~/bin
, lo nombrétrash
y funcionó la primera vez, lo que me permitió tirar a la basura muchos archivos de manera mucho más eficiente que si tuviera que hacer clic en ellos en las ventanas del Finder. Mucha gratitud ¡Espero que publiques más respuestas!osascript
cuando el archivo no existe no es hermoso, por lo que es posible que desee ajustar esa parte.rm
tanto como sea posible en términos de mostrar mensajes cuando los archivos no existen, y (2) recopila todo en una solaosascript
llamada.Encontré un código bastante bueno que se puede agregar al final del perfil de lote del usuario y hace
rm
que mueva los archivos a la papelera cada vez que se ejecuta.nano ~ / .bash_profile
fuente: http://hints.macworld.com/article.php?story=20080224175659423
fuente
local dst=${path##*/}
conlocal dst=${mindtrailingslash##*/}
e insertar otra línea justo antes de que uno que dicelocal mindtrailingslash=${path%/}
. ② Yo uso el nombrefunction rr
. De esta manera, no interfiere con plainrm
, pero el nombre es igualmente corto y rápido de escribir (cualquier otro nombre lo haría).rm()
armt()
: de esta manera, aún puede usar elrm
comando cuando lo desee. Pienso en rmt en mi cabeza comoremove to trash
: DUse el comando de terminal osascript, el intérprete de AppleScript.
Esto le dice a AppleScript que le diga a Finder que envíe el archivo a la papelera.
Se necesita PWD para rutas de archivos relativas, ya que AppleScript no se maneja tan bien.
fuente
Un enfoque moderno con Swift
https://github.com/reklis/recycle
fuente
Si bien es posible
rm
mover los archivos a la Papelera en lugar de eliminarlos, aconsejaría no llevar la mentalidad de la red de seguridad de las interfaces gráficas de usuario al shell de UNIX. Hay muchas formas de causar daños graves con el terminal. El mejor consejo en mi humilde opinión es pensarlo dos veces antes de enterpresionar la tecla en una ventana de shell.Si desea
rm
recordarle que está a punto de eliminar un archivo, considere usar el siguiente alias (para/bin/bash
poner esta línea.bashrc
en su directorio de inicio):Esto
rm
confirmará la solicitud antes de intentar eliminar cada archivo.Si tiene TimeMachine ejecutándose (¡espero que sí!) Siempre puede obtener su archivo de la copia de seguridad. De esta manera, puede perder como máximo una hora de trabajo. Lo cual es bastante malo, por supuesto. ¡Así que piense de nuevo antes de presionar esa entertecla!
fuente
rm
y colgarse con el aliasrm -i
..bashrc
solo se ejecuta si el shell es interactivo. ¡Mira la página del manual !rm
más segura que lo que te meterá en problemas en otros sistemas. Además, si lo usa-f
,-i
se ignora por completo. Dicho esto, esta es una buena red de seguridad. Una mejor es nunca usarrm
a favor de unrmi
alias (alias rmi="rm -i"
) o la excelentetrash
utilidad. Además, agregaré que todo el mundo ya debería haber puesto[ -f ~/.bashrc ] && source ~/.bashrc
la.bash_profile
suya.Hay dos utilidades instalables a través de Homebrew que pueden lograr esto:
basura
Este es un pequeño programa de línea de comandos para OS X que mueve archivos o carpetas a la papelera. El USP de este comando es el que permite restaurar fácilmente los archivos. Un comando para eliminar archivos / carpetas no sirve de nada si no puede restaurar archivos / carpetas después de eliminarlos. Desde el sitio web del comando:
Para instalar,
trash
ejecute lo siguiente en la Terminal:brew install trash
.rmtrash
Una herramienta de línea de comando que mueve archivos a la papelera. Desde la página del comando man:
Para instalar,
rmtrash
ejecute lo siguiente en la Terminal:brew install rmtrash
.fuente
Aquí hay una solución de una línea bastante trivial para agregar a su perfil de bash. Tenga en cuenta que ya sobrescribirá algo con el mismo nombre en la papelera.
Uso:
fuente
Destrozar cosas adecuadamente (para que sea definitivamente recuperable) es más complicado que simplemente un
mv
to to~/.Trash
.osx-trash puede ser lo que estás buscando. ( Advertencia : no lo he probado y no puedo garantizar lo seguro que es).
fuente
Echa un vistazo
trash-cli
. Funciona multiplataforma, sin sonido de basura y admite Put Back.Puede instalarlo con (requiere Node.js ) :
Alternativamente, si no desea utilizar Node.js, puede instalar el binario nativo
osx-trash
manualmente.fuente
En su .bashrc (o donde sea que guarde los parámetros para su shell), intente agregar un alias que cambie el comportamiento de rm para mover cosas a ~ / .Trash, como en:
Sin embargo, este alias está lejos de ser trivial para implementar (al menos para mí), porque el uso de mv (el principal candidato para usar para este trabajo) es
Por lo tanto, tener un alias que ponga la parte 'dónde' delante del archivo a mover podría ser bastante incompleto. Lo investigaré y podría obtener consejos más sustanciales.
EDITAR: acabo de intentar agregar lo siguiente a mi .bashrc, y funciona:
Es mucho más primitivo que otras sugerencias, pero evita instalar cosas nuevas.
fuente
rm
a cualquier cosa es peligroso porque puede romper los scripts de instalación. Esto lo aprendí de la manera difícil cuando un aliasrm
pararm -i
y tenía instalaciones cuelgan..bashrc
solo se usa para shells interactivos . Si ejecuta./install.sh
un nuevo proceso, se inicia y el alias no estará activo. Sin embargo, si ejecuta. install.sh
su proceso actual, ejecutará el instalador y el alias estará activo. RTFM ...rm
usar el alias del comando, como dijo Morgant, porque se sentirá cómodo conrm
no eliminar realmente los archivos y luego podría eliminar accidentalmente algo en un sistema donde no se haya agregado dicho alias. Además, mover un archivo a la papelera no es tan simple como solomv {} ~/.Trash
. Si el archivo está en un volumen separado, por ejemplo, esto copiará el archivo a su directorio de inicio y eliminará el original.Simplemente he puesto este script
en
~/bin/trash
, lo hizo ejecutablechmod +x ~/bin/trash
y agregó la siguiente línea a~/.bash_profile
Entonces uno puede usarlo como
fuente
Una función simple podría permitirle tirar basura a los archivos moviéndolos a la carpeta .Trash del usuario:
fuente
$*
lugar de$1
, pero terminarías con la misma respuesta quemv "$@" ~/.Trash
. Por qué la gente vota negativamente, revisa los comentarios de la otra respuesta.