我有兩行代碼cat命令
1)用下面的代碼:
for i in `ls *.properties`; do cat $i; done
我得到的錯誤:
cat: file_name.properties: No such file or directory.
2)其他手:
for i in *.properties; do cat $i; done
工作正常!
我以爲兩者都是一樣的。有人能幫我理解兩者之間的區別嗎?使用bash shell。
我有兩行代碼cat命令
1)用下面的代碼:
for i in `ls *.properties`; do cat $i; done
我得到的錯誤:
cat: file_name.properties: No such file or directory.
2)其他手:
for i in *.properties; do cat $i; done
工作正常!
我以爲兩者都是一樣的。有人能幫我理解兩者之間的區別嗎?使用bash shell。
下列命令打印什麼?
cat -v <<< `ls *.properties`
我想問題是,那ls
是一個奇怪的別名,例如,像
ls='ls --color'
編輯:我以前見過這個。別名應該是:alias ls='ls --color=auto'
'別名| grep ls' –
謝謝nosid。有一個別名完全如您所述。欣賞它。 –
是的。您的「編輯」編輯答案爲我工作。 –
最有可能有一個目錄匹配*.properties
。然後ls
將輸出這個目錄中沒有目錄名稱的文件。然後cat
將找不到給定的文件名。
因此請檢查,file_name.properties
是否在實際目錄或某個子目錄中。
編輯
要重現你可以試試這個問題:
# cd /tmp
# mkdir foo.properties
# touch foo.properties/file_name.properties
# for i in `ls *.properties`; do cat $i; done
cat: file_name.properties: No such file or directory
不錯的主意,但在這種情況下,他會首先看到'cat:directoryname ::沒有這樣的文件或目錄.'(注意雙冒號) –
@KarolyHorvath你不會,因爲'ls dir'會輸出目錄的_contents_但不是文字'dir'本身。因此'cat'不會看到這個名字,也不能產生你提出的輸出。 –
@卡洛利,整潔,我從來沒有注意到過; 'cat:rc0.d ::沒有這樣的文件或目錄。 :) – sarnold
貴的文件名包含一個空間? –
不,它不。名稱由下劃線分隔。 –
請顯示* actual *示例。如果你不想分享,它不一定是你真正的文件名,但是能夠證明你看到的問題會有所幫助。 –