Considere que eu tenho diretórios nomeados de acordo com anos e contendo arquivos pdf de acordo com o assunto-código.
ls
output é:
$ ls -l
total 32
drwxrwxrwx 1 root root 4096 Apr 8 08:52 May-June-2011
drwxrwxrwx 1 root root 4096 Apr 8 08:52 Nov-Dec-2011
drwxrwxrwx 1 root root 4096 Apr 8 20:36 Summer-2012
drwxrwxrwx 1 root root 4096 Apr 8 08:52 Summer-2013
drwxrwxrwx 1 root root 4096 Apr 8 08:52 Summer-2014
drwxrwxrwx 1 root root 4096 Apr 8 08:52 Winter-2012
drwxrwxrwx 1 root root 4096 Apr 8 08:52 Winter-2013
drwxrwxrwx 1 root root 4096 Apr 8 08:52 Winter-2014
Cada diretório contém arquivos pdf de acordo com o código do assunto: -
ls -l May-June-2011/
total 808
-rwxrwxrwx 1 root root 104193 May 1 2011 161901.pdf
-rwxrwxrwx 1 root root 103380 May 1 2011 161902.pdf
-rwxrwxrwx 1 root root 115664 May 1 2011 161903.pdf
-rwxrwxrwx 1 root root 88953 May 1 2011 161904.pdf
-rwxrwxrwx 1 root root 179268 May 1 2011 161905.pdf
-rwxrwxrwx 1 root root 116158 May 24 2011 161906.pdf
-rwxrwxrwx 1 root root 106033 May 1 2011 161907.pdf
Em outras palavras, cada diretório possui 16190{1..7}.pdf
Agora, suponha que eu queira mover todos (de todos os diretórios mencionados) 161901.pdf
para um diretório específico (digamos xyz
) com renomeação para o nome da pasta pai.pdf.
Explicação: -
Aqui está a lista de todos os 161901.pdf
:
$ find -name 161901.pdf
./May-June-2011/161901.pdf
./Nov-Dec-2011/161901.pdf
./Summer-2012/161901.pdf
./Summer-2013/161901.pdf
./Summer-2014/161901.pdf
./Winter-2012/161901.pdf
./Winter-2013/161901.pdf
./Winter-2014/161901.pdf
Eu quero que ./May-June-2011/161901.pdf
seja movido para xyz
com o novo nome May-June-2011.pdf
(nome do diretório dentro do arquivo). ou seja, mova ./May-June-2011/161901.pdf
para ./xyz/May-June-2011.pdf
Similarmente, ./Nov-Dec-2011/161901.pdf
a ./xyz/Nov-Dec-2011.pdf
, ./Summer-2012/161901.pdf
a ./xyz/Summer-2012.pdf
e assim por diante (até ./Winter-2014/161901.pdf
a ./xyz/Winter-2014.pdf
).
A saída esperada para ls xyz
é:
$ls xyz
May-June-2011.pdf
Nov-Dec-2011.pdf
Summer-2012.pdf
Summer-2013.pdf
Summer-2014.pdf
Winter-2012.pdf
Winter-2013.pdf
Winter-2014.pdf
Como posso conseguir isso? (como find -exec
ou com loop ou outra coisa)