J'ai essayé:trouver -exec lorsqu'il est utilisé avec sed pour renomme le fichier ne fonctionne pas
find dev-other -name '*.flac' -type f -exec echo $(echo {} | sed 's,^[^/]*/,,') \;
-je voir une liste de chemins à .flac
fichiers dans dev-other
, mais sans préfixé dev-other/
, par exemple:
4515/11057/4515-11057-0095.flac
4515/11057/4515-11057-0083.flac
4515/11057/4515-11057-0040.flac
4515/11057/4515-11057-0105.flac
4515/11057/4515-11057-0017.flac
4515/11057/4515-11057-0001.flac
Au lieu de cela, je vois
dev-other/4515/11057/4515-11057-0095.flac
dev-other/4515/11057/4515-11057-0083.flac
dev-other/4515/11057/4515-11057-0040.flac
dev-other/4515/11057/4515-11057-0105.flac
dev-other/4515/11057/4515-11057-0017.flac
Pourquoi pas th e sed
remplacer travailler ici, même si elle fonctionne sur ses propres
$ echo $(echo dev-other/4515/11057/4515-11057-0047.flac | sed 's,^[^/]*/,,')
4515/11057/4515-11057-0047.flac
j'ai essayé avec des extensions:
find dev-other -name '*.flac' -type f -exec a={} echo ${a#*/} \;
mais nous avons eu les erreurs:
find: a=dev-other/700/122866/700-122866-0001.flac: No such file or directory
find: a=dev-other/700/122866/700-122866-0030.flac: No such file or directory
find: a=dev-other/700/122866/700-122866-0026.flac: No such file or directory
find: a=dev-other/700/122866/700-122866-0006.flac: No such file or directory
find: a=dev-other/700/122866/700-122866-0010.flac: No such file or directory
question intéressante, et la réponse des raisons pour lesquelles 'sed' fonctionne pas est probablement ici, https://stackoverflow.com/questions/4793892/recursively-rename-files-using -find-and-sed – CWLiu