Bash
如何以表格方式將文件夾的文件名列印為文件
我在一個文件夾中有一些文件,我想以表格的方式在一個 file.txt 中列印他們的名字,就像不是一個下一個的文本,有什麼命令嗎?
dd1.txt dd2.txt dd3.txt dd5.txt
假設不需要遞歸到子目錄:
printf '%s\n' * | paste -d ' ' -s - >other/path/file.txt
這將在文件的一行中列出目前目錄中所有可見的文件名
other/path/file.txt
。我選擇寫入其他目錄中的文件,因為
file.txt
在目前目錄中寫入會使該文件名成為輸出的一部分。顯然,首先要確保輸出文件名可以自由使用。該實用程序通常是 shell 中的內置實用程序,因此即使可能擴展到數千個名稱
printf
,它也能夠處理這個問題(請注意,這不是OpenBSD中或OpenBSD 上的內置實用程序)。該實用程序每行生成一個文件名,但不會干擾名稱本身的格式,這在某些情況下可能會這樣做。*``printf``sh``ksh``ls
該
paste
命令採用換行符分隔的名稱列表並將它們放在一行中,它們之間有空格。如果需要,可以使用該-d
選項輕鬆更改分隔符。這將無法正確處理嵌入換行符的文件名,也無法從生成的列表中提取嵌入空格的文件名。