Bash

如何以表格方式將文件夾的文件名列印為文件

  • August 1, 2021

我在一個文件夾中有一些文件,我想以表格的方式在一個 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選項輕鬆更改分隔符。

這將無法正確處理嵌入換行符的文件名,也無法從生成的列表中提取嵌入空格的文件名。

引用自:https://unix.stackexchange.com/questions/662865