J'ai un répertoire que je suis rempli par un autre utilisateur et je suis chargé de le maintenir. Je veux supprimer tout son contenu sauf un 2 fichiers avec un nom spécifique. Est-ce possible avec rm
ou devrais-je faire ceci:
cp aaa/a ./a && cp aaa/b ./b && rm -rf aaa/* && mv ./a aaa/a && mv ./b aaa/b
où aaa
est le répertoire, a,b
sont les fichiers que je veux conserver, et il y a (au moins, il peut y avoir) d'autres fichiers/répertoires.
Y a-t-il un moyen meilleur (et plus court)?
Avec bash étendu globs, étant donné
$ tree aaa
aaa
├── a
├── b
├── c
├── d
├── e
└── subdir
ensuite
rm -rf aaa/!(a|b)
feuilles
$ tree aaa
aaa
├── a
└── b
0 directories, 2 files