Je fais beaucoup de travail en terminal et j'ai aujourd'hui l'expérience de la dactylographie
rm fileInQuestion.txt
Avant de découvrir que j'avais réellement besoin de fileInQuestion.txt. Si j'avais effacé l'interface graphique, je l'aurais simplement extraite de la corbeille. J'aimerais savoir s'il est possible de surcharger "rm" dans le terminal de manière à ce qu'il envoie le ou les fichiers dans la corbeille lors de leur sortie.
Réponses:
Je ne conseillerais pas aliasing
rm
àmv
que vous pourriez prendre l'habitude derm
ne pas supprimer définitivement des fichiers, puis rencontrer des problèmes sur d' autres ordinateurs ou sous d' autres comptes utilisateur quand il ne supprime définitivement.J'ai écrit un ensemble de
bash
scripts qui ajoutent plus de Mac OS outils de ligne de commande X-like (en plus d'un certain nombre de ceux intégrés commeopen
,pbcopy
,pbpaste
, etc.), le plus importanttrash
. Ma version detrash
va faire tout ce que le pseudonymerm
ne permet pas (et, espérons-le, rien de mauvais, mais je l'utilise sur mon propre Mac depuis quelques années maintenant sans perte de données), notamment: renommer le fichier comme le fait le Finder si un fichier portant le même nom existe déjà, placez les fichiers dans le dossier Corbeille approprié sur les volumes externes; il a aussi quelques subtilités supplémentaires, comme par exemple: il essaie d'utiliser AppleScript lorsqu'il est disponible afin que vous obteniez le bon son de corbeille, etc. (mais ne l'exige pas, vous pouvez toujours l'utiliser via SSH quand aucun utilisateur n'est connecté), vous donner la taille de la corbeille à travers tous les volumes.Vous pouvez récupérer ma suite tools-osx sur mon site ou la dernière et meilleure version du référentiel GitHub .
Il existe également une
trash
commande développée par Ali Rantakari , mais je ne l’ai pas testée moi-même.la source
trash
fait un moment que je me sers de Rantakari et je peux vraiment en témoigner. Il est compilé avec Objective-C et utilise intelligemment les API de système de fichiers standard et, en cas d'échec (l'utilisateur ne disposant pas de droits suffisants), il appelle le Finder pour supprimer les fichiers (en invoquant l'authentification). Vous pouvez lire plus d'informationstrash
sur hasseg.org/blog .brew install trash
.trash
commande disponible via Homebrew est celle d’Alai Rantakari (voir labrew
formule ).brew remove trash
puisbrew install trash
.L’ outil de ligne de commande de la corbeille peut être installé via
brew install trash
.Il vous permet de restaurer des fichiers supprimés via une ligne de commande ou le Finder.
la source
port install trash
brew install trash
, je reçois ceci: pastebin.com/N92cM7d8brew update
abord? Fonctionne bien sur ma fin.J'ai un exécutable appelé
rem
quelque part dans le mon$PATH
avec le contenu suivant:EDIT: le code ci-dessous est une version révisée et améliorée en collaboration avec Dave Abrahams :
Il se comporte exactement de la même manière que la suppression du Finder. (Voir l'article du blog ici .)
la source
~/bin
nom, il l'a nommétrash
et il a fonctionné pour la première fois, ce qui m'a permis de jeter beaucoup plus de fichiers de manière plus efficace que si je devais cliquer dessus dans la fenêtre du Finder. Beaucoup de gratitude. J'espère que vous posterez plus de réponses!osascript
lorsque le fichier n'existe pas n’est pas beau, vous voudrez peut-être accorder cette partie.rm
autant que possible la commande shell en termes d'affichage de messages lorsque les fichiers n'existent pas, et (2) rassemble le tout en un seulosascript
appel.J'ai trouvé un joli code qui peut être ajouté à la fin du profil de traitement par lot de l'utilisateur et qui permet
rm
de déplacer les fichiers dans la corbeille à chaque exécution.nano ~ / .bash_profile
source: http://hints.macworld.com/article.php?story=20080224175659423
la source
local dst=${path##*/}
aveclocal dst=${mindtrailingslash##*/}
et insérant une autre ligne juste avant celle qui ditlocal mindtrailingslash=${path%/}
. ② J'utilise le nomfunction rr
. Comme cela, cela n’interfère pas avec plainrm
, mais le nom est pareillement court et rapide à taper (tout autre nom ferait l'affaire).rm()
enrmt()
- De cette façon, vous pouvez toujours utiliser larm
commande quand vous le souhaitez. Je pense à rmt dans ma tête commeremove to trash
: DUtilisez la commande de terminal osascript, l'interpréteur AppleScript.
Ceci dit à AppleScript de dire au Finder d’envoyer le fichier à la corbeille.
PWD est nécessaire pour les chemins de fichiers relatifs, car AppleScript ne le gère pas bien.
la source
une approche moderne en utilisant rapide
https://github.com/reklis/recycle
la source
Bien qu'il soit possible de
rm
déplacer des fichiers vers la Corbeille au lieu de les supprimer, il est toutefois déconseillé de placer l'état d'esprit du filet de sécurité des interfaces utilisateur graphiques dans le shell UNIX. Il existe de nombreuses façons d’endommager sérieusement le terminal. Le meilleur conseil à mon humble avis est simplement de réfléchir à deux fois avant de frapper la enterclé dans une fenêtre shell.Si vous souhaitez vous
rm
rappeler que vous êtes sur le point de supprimer un fichier, utilisez l’alias suivant (pour/bin/bash
insérer cette ligne.bashrc
dans votre répertoire personnel):Cela fera la
rm
demande confirmation avant d'essayer de supprimer chaque fichier.Si vous avez TimeMachine en cours d'exécution (j'espère bien!), Vous pouvez toujours obtenir votre fichier à partir de la sauvegarde. De cette façon, vous pouvez perdre au plus une heure de travail. Ce qui est déjà assez grave, bien sûr. Alors réfléchis encore avant d'appuyer sur cette entertouche!
la source
rm
et bloquer avec l'aliasrm -i
..bashrc
n'est exécuté que si le shell est interactif. Consultez la page de manuel !rm
est plus en sécurité que ce qui vous mettra en difficulté sur d'autres systèmes. En outre, si vous utilisez-f
,-i
est complètement ignoré. Cela dit, c'est un bon filet de sécurité. Un meilleur est de ne jamais utiliserrm
en faveur d'unrmi
alias (alias rmi="rm -i"
) ou de l'excellenttrash
utilitaire. En outre, j'ajouterai que tout le monde aurait dû mettre[ -f ~/.bashrc ] && source ~/.bashrc
leur.bash_profile
maintenant.Homebrew permet d' installer deux utilitaires :
poubelle
Il s'agit d'un petit programme en ligne de commande pour OS X qui déplace des fichiers ou des dossiers dans la corbeille. L'USP de cette commande permet de restaurer facilement les fichiers. Une commande pour supprimer des fichiers / dossiers est inutile si vous ne pouvez pas restaurer des fichiers / dossiers après les avoir supprimés. Sur le site de la commande:
Pour installer,
trash
exécutez ce qui suit dans Terminal:brew install trash
.rmtrash
Un outil de ligne de commande qui déplace les fichiers dans la corbeille. Depuis la page de manuel de la commande:
Pour installer,
rmtrash
exécutez ce qui suit dans Terminal:brew install rmtrash
.la source
Voici une solution simple et triviale à ajouter à votre profil bash. Notez que cela écrasera déjà quelque chose du même nom dans la corbeille.
Usage:
la source
Trashing correctement (afin qu'il soit définitivement récupérable) est plus délicat que simplement un
mv
à~/.Trash
.osx-trash est peut-être ce que vous cherchez. ( Caveat emptor - Je ne l'ai pas essayé et je ne peux pas en garantir le degré de sécurité.)
la source
Consultez
trash-cli
. Il fonctionne sur plusieurs plates-formes, ne produit aucun son de poubelle et prend en charge la récupération.Vous pouvez l'installer avec (nécessite Node.js ) :
Si vous ne souhaitez pas utiliser Node.js, vous pouvez également installer le binaire natif
osx-trash
manuellement.la source
Dans votre .bashrc (ou partout où vous gardez les paramètres de votre shell), essayez d’ajouter un alias modifiant le comportement de rm pour déplacer des éléments vers ~ / .Trash, comme dans:
Cet alias est loin d'être trivial à mettre en œuvre (du moins pour moi), car l'utilisation de mv (le candidat idéal à utiliser pour ce travail) est
donc, avoir un alias qui place la partie 'où' devant le fichier à déplacer peut être assez sommaire. J'examinerai peut-être un conseil plus substantiel.
EDIT: J'ai juste essayé d'ajouter ce qui suit à mon .bashrc, et ça marche:
C'est beaucoup plus primitif que d'autres suggestions, mais vous évitez d'installer de nouvelles choses.
la source
rm
sont dangereux car ils peuvent endommager les scripts du programme d'installation. J'ai appris cela à la dure lorsque j'ai optérm
pour un aliasrm -i
et que des installations étaient bloquées..bashrc
n'est utilisé que pour les shells interactifs . Si vous exécutez./install.sh
un nouveau processus est démarré et l'alias ne sera pas actif. Cependant, si vous exécutez. install.sh
votre processus actuel exécutera le programme d'installation et que l'alias sera actif. RTFM ...rm
aliaser la commande, comme le dit morgant, car vous ne voudrezrm
plus vraiment supprimer des fichiers et vous risquez alors de supprimer accidentellement quelque chose sur un système où aucun alias n'a été ajouté. De plus, déplacer un fichier dans la corbeille n’est pas aussi simple que celamv {} ~/.Trash
. Si le fichier se trouve sur un volume séparé, par exemple, le fichier sera copié dans votre répertoire personnel et l'original sera supprimé.J'ai simplement mis ce script
dans
~/bin/trash
, fait le excutablechmod +x ~/bin/trash
, et a ajouté la ligne suivante à~/.bash_profile
Ensuite, on peut l'utiliser comme
la source
Une simple fonction pourrait vous permettre de supprimer des fichiers en les déplaçant vers le dossier .Trash de l'utilisateur:
la source
$*
au lieu de$1
, mais vous auriez alors la même réponse quemv "$@" ~/.Trash
. Pourquoi les gens votent-ils négativement, vérifiez les commentaires de l'autre réponse.