Estou fazendo uma lista find
de todos os arquivos com determinada extensão e depois copio-os para uma determinada pasta, mas a maioria deles são sobrescritos porque têm o mesmo nome. Como posso, com um comando do Linux, obter o caminho do arquivo e substituí-lo no nome do arquivo?
No momento estou usando este comando:
find . -name "*.css" | xargs cp -t /folder/AllCssFiles/
então, se eu tiver dois arquivos em um determinado caminho como este:
/something/abc/file.css
/anyting/xyz/file.css
quando uso o comando devo obter algo assim na pasta AllCssFiles:
/something/abc/file.css (name of the file)
/anyting/xyz/file.css
Responder1
Você pode usar -execdir
e o comando rename
1 .
find ./ -type f -name "*.css" -execdir rename -v "s/search/replace/" {} \;
se você não tiver certeza, você pode usar rename
com-n
-n, -nono
No action: print names of files to be renamed, but don't rename.
1 Esta é a sintaxe perl-rename
chamada rename
em sistemas baseados em Debian, prename
em alguns e perl-rename
em outros.