-1
[[email protected] dir2]# ls
d1 d2 d3 d4 d5 f1 f2 f3 f4 f5
[[email protected] dir2]# rm -f *
rm: cannot remove `d1': Is a directory
rm: cannot remove `d2': Is a directory
rm: cannot remove `d3': Is a directory
rm: cannot remove `d4': Is a directory
rm: cannot remove `d5': Is a directory
[[email protected] dir2]# ls
d1 d2 d3 d4 d5
[[email protected] dir2]# rm -rf *
[[email protected] dir2]# ls
[[email protected] dir2]#
我在寫一個工具來刪除存在的文件和目錄。我需要驗證用戶是否給出了參數"*"
,然後刪除所有文件和文件夾。但當作爲參數給出"*"
時,會在目錄中顯示文件和文件夾的數量,如何驗證"*"
而不給出雙引號。如何在運行可執行文件時不提供引號而提取「*」
./a.out *
或./a.out -f *
或./a.out -rf *
。我不能給./a.out "*"
。我需要輸入./a.out *
並進行驗證。這個怎麼做?
通配符擴展是由shell完成的,到程序運行時爲時已晚。相反,您可以執行自己的'*'擴展並查看它是否與命令行匹配(儘管這不是萬無一失的,因爲目錄內容可能會在此期間發生變化) – 2014-09-04 11:36:41