Jusqu'à présent, je suis venu avec cela.
if ls -1 ~/Downloads/*.mkv >/dev/null 2>&1
then
echo 1
else
echo 0
fi
Mais ce que je voudrais faire est de copier ensuite le répertoire parent du fichier trouvé vers un autre emplacement.
J'ai le sentiment que je devrais utiliser la commande find.
.mkv
vous voulez copier le dossier ailleurs?Réponses:
La réponse de fede.evol échoue si les chemins contiennent des espaces. La sortie de
find
ouls
ne devrait pas être utilisé dans une substitution de commande .La manière appropriée de traiter tous les noms de fichiers (à l'exception des chemins avec des nouvelles lignes) serait la suivante:
De cette façon, chaque dossier de
/somewhere
est copié dans/other/
. Notez que la fin de la barre oblique est obligatoire, car sinon la cible serait toujours remplacée.la source
Utilisation
dirname FILE
pour obtenir le nom de répertoire d'un fichier donné. Donc par exemple:Vous donnera tous les répertoires avec un MKV sous RÉPERTOIRE. Ensuite, vous pouvez les passer à travers
uniq
ne pas obtenir des doublons et puis en cas de copie.Par exemple
la source
find
ouls
sortie.