165 votos

Cómo mover archivos a la papelera desde la línea de comandos?

Hago un montón de terminal de trabajo, y hoy tenía la experiencia de escribir

rm fileInQuestion.txt

Antes de saber que estaba realmente necesita fileInQuestion.txt. Si yo hubiera eliminado en la interfaz gráfica de usuario, a continuación, habría llegado sólo fuera de la Basura. Me gustaría saber si es posible sobrecargar 'rm' en la Terminal de tal manera que se envía el archivo o archivos a la Papelera en el camino de salida.

137voto

Paul Wenzel Puntos 279

La basura herramienta de línea de comandos puede ser instalado a través de brew install trash.

Esto le permite restaurar archivos de la papelera a través de línea de comandos o en el Finder.

119voto

Jim Puls Puntos 29289

Yo no aconsejaría aliasing rm a mv como se podría conseguir en el hábito de rm no borrar permanentemente los archivos y, a continuación, ejecute en problemas en otros equipos, o en otras cuentas de usuario cuando se hace eliminar de forma permanente.

Escribí un conjunto de bash scripts que añadir más de Mac OS X como herramientas de línea de comandos (además de un número de los que ya vienen como open, pbcopy, pbpaste, etc.), lo que es más importante trash. Mi versión de trash va a hacer todas las cosas correctas que aliasing rm no (y esperemos que nada malo, pero yo he estado usando en mi propia Mac para un par de años sin ninguna pérdida de datos), incluyendo: cambiar el nombre del archivo como Buscador hace si un archivo con el mismo nombre ya existe, poner los archivos en la correcta carpeta de la Papelera en los volúmenes externos; también tiene algunas sutilezas, como: intenta utilizar AppleScript cuando esté disponible, de modo que se obtenga una bonita basura de sonido y tal (pero no lo necesita así que todavía se puede utilizar a través de SSH cuando ningún usuario ha iniciado sesión), se puede dar de Basura de tamaño a través de todos los volúmenes.

Usted puede agarrar mis herramientas-osx suite de mi sitio o la última y mejor versión desde el repositorio de GitHub.

También hay un trash comando desarrollado por Ali Rantakari, pero yo no he probado que uno mismo.

27voto

Anthony Smith Puntos 29

Tengo un archivo ejecutable llamado rem en algún lugar de mi $PATH con el siguiente contenido:

#!/usr/bin/env python
import os
import sys
if len(sys.argv) > 1:
    for arg in sys.argv[1:]:
        if os.path.exists(arg):
            os.system('osascript -e \'tell app "Finder" '
                      + 'to move the POSIX file "'
                      + os.path.abspath(arg) + '" to trash\'')
        else:
            print "Error:", os.path.abspath(arg), "does not exist"
else:
    print "usage: rem file(s)"
    print "       move file(s) to Trash"

Se comporta exactamente de la misma manera como eliminar desde el Finder. (Ver entrada de blog aquí.)

3voto

rraallvv Puntos 460

He encontrado un buen código que puede ser añadido al final de usuario del lote de perfil y provoca rm a mover los archivos a la basura cada vez que se ejecute.

nano ~/.bash_profile

#... append at the end
function rm () {
  local path
  for path in "$@"; do
    # ignore any arguments
    if [[ "$path" = -* ]]; then :
    else
      # remove trailing slash
      local mindtrailingslash=${path%/}
      # remove preceding directory path
      local dst=${mindtrailingslash##*/}
      # append the time if necessary
      while [ -e ~/.Trash/"$dst" ]; do
        dst="`expr "$dst" : '\(.*\)\.[^.]*'` `date +%H-%M-%S`.`expr "$dst" : '.*\.\([^.]*\)'`"
      done
      mv "$path" ~/.Trash/"$dst"
    fi
  done
}

fuente: http://hints.macworld.com/article.php?story=20080224175659423

1voto

Luk Puntos 2602

Mientras que es posible hacer rm mover archivos a la Papelera en lugar de la eliminación de ellos, yo aconsejo llevar la mentalidad de la red de seguridad de interfaces gráficas de usuario para el shell de UNIX. Hay muchas maneras de hacer un daño grave el uso de la terminal. El mejor consejo en mi humilde opinión es simplemente pensar dos veces antes de apretar el enter clave en una ventana de shell.

Si desea rm para recordarle que usted está a punto de eliminar un archivo considerar el uso de los siguientes alias (por /bin/bash poner esta línea en .bashrc en su directorio de inicio):

alias rm "rm -i"

Esto hará rm solicitud de confirmación antes de intentar eliminar cada archivo.

Si usted tiene TimeMachine correr (eso espero!) siempre se puede conseguir el archivo de copia de seguridad. De esta manera usted puede perder más de una hora de trabajo. Que es bastante malo, por supuesto. Así que creo que de nuevo antes de pulsar que introduzca la clave!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X