Desejo procurar nomes de arquivos em um diretório de origem e todos os seus subdiretórios e, em seguida, imprimir a saída em um arquivo como:
ls -hR >> del.txt
(Eu, porém, não sei como não listar pastas)
Não preciso salvar a lista do arquivo em um arquivo, mas acho que isso tornará as coisas seguras e claras.
Em seguida, desejo um "comando" para pesquisar um determinado diretório de destino e seus subdiretórios e excluir todos os arquivos correspondentes nas del.txt
pastas excluindo.
Os arquivos são muito diferentes em nomes e extensões, portanto, usar regex não resolverá o problema, pois desejo excluir apenas esses arquivos. Além disso, o diretório onde devo excluir os arquivos do formulário possui outros arquivos necessários, que desejo manter, com as mesmas extensões dos arquivos do diretório de origem.
Você pode criar a lista de nomes de arquivos do diretório de origem e salvá-los no arquivo
del.txt
como entradas delimitadas por nulo, como:Em seguida, teste a simulação substituindo
/full/path/to/destination/
pelo caminho completo real para o diretório de destino da seguinte forma:Se você estiver satisfeito com a saída, exclua os arquivos com:
Como alternativa , você pode colocar os dois comandos em um pipeline para criar a lista de nomes de arquivos, procurá-los e imprimir uma simulação em tempo real da seguinte forma:
E apague assim:
Aviso : Uma lista de nomes de arquivos delimitada por nulo pode não ser fácil de ler por humanos, mas é uma maneira muito mais segura para nomes de arquivos que possuem uma nova linha, por exemplo ... Você pode criar uma lista amigável para fins de revisão ( ou seja, para você para ler e manter... Não use isso com os comandos acima ), assim: