Você está latindo para a lua. Basta usar o redirecionador de acréscimo >>
em vez do redirecionador de gravação >
:
touch AllDirectoriesFileInfo.txt
ls -r /home/tony/Desktop/jpgfolder >> AllDirectoriesFileInfo.txt
ls -r /home/tony/Desktop/giffolder >> AllDirectoriesFileInfo.txt
ls -r /home/tony/Desktop/docxfolder >> AllDirectoriesFileInfo.txt
ls -r /home/tony/Desktop/dregsfolder >> AllDirectoriesFileInfo.txt
Ou esqueça de anexar e apenas dê ls
vários argumentos:
ls -r /home/tony/Desktop/jpgfolder /home/tony/Desktop/giffolder /home/tony/Desktop/docxfolder /home/tony/Desktop/dregsfolder >> AllDirectoriesFileInfo.txt
Simplificado:
ls -r ~tony/Desktop/{jpgfolder,giffolder,docxfolder,dregsfolder} >> AllDirectoriesFileInfo.txt
Ainda mais curto, assumindo que tony
é seu nome de usuário:
ls -r ~/Desktop/{jpg,gif,docx,dregs}folder >> AllDirectoriesFileInfo.txt
Embora, se você estiver fazendo algum processamento nos dados do arquivo, você vai querer usar find
ao invés de ls
, já que em geral, ls
dá saída para humanos lerem e find
fornece saída para os computadores lerem. Especificamente neste caso, find
lista o arquivo e seu caminho juntos.
Aqui está um exemplo rápido:
$ mkdir dir1 dir2
$ touch {dir1,dir2}/file1
$ ls -r dir1 dir2 > ls_r_out.txt
Agora, digamos que eu queira pesquisar "file1":
$ grep 'file1$' ls_r_out.txt
file1
file1
OK, isso não é muito útil, porque não me diz onde estão os arquivos. Vou tentar o mesmo processo com find
. Agora, find
não suporta classificação, por isso vou ter que percorrer sort
:
$ find dir1 dir2 | sort -r > find_reverse_out.txt
$ grep 'file1$' find_reverse_out.txt
dir2/file1
dir1/file1
Voila. Observe que isso fica mais complicado se os nomes dos arquivos contiverem caracteres especiais, como novas linhas.