使用chmod
,我在當前目錄中做了chmod +x *.sh
但是如果我想更改所有文件,包括具有sh文件擴展名的子文件夾中的文件,該怎麼辦?如何將文件權限更改爲某個文件模式到我當前目錄的子文件夾?
chmod +x -R *
工作,但我需要的東西更像是chmod +x -R *.sh
使用chmod
,我在當前目錄中做了chmod +x *.sh
但是如果我想更改所有文件,包括具有sh文件擴展名的子文件夾中的文件,該怎麼辦?如何將文件權限更改爲某個文件模式到我當前目錄的子文件夾?
chmod +x -R *
工作,但我需要的東西更像是chmod +x -R *.sh
查找功能:
find . -name "*.sh" -exec chmod +x {} \;
嘗試使用與xargs的發現的光榮組合。
find . -iname \*.sh | xargs chmod +x
.
是開始的目錄,在本例中是工作目錄。
隨着find
現代版本,你會得到一個xargs
的辦法,避免了命令(chmod
)多次調用的好處。該命令只是稍有不同。
find . -name "*.sh" -exec chmod +x {} +
從find
docs剪斷上拱2015年9月1日(強調通過我加入):
-exec command {} +
的
-exec
動作的這種變體上運行所選擇的指定的命令文件,,但命令行是通過在最後附加每個選定的文件名來構建的;該命令的總調用次數將遠遠少於匹配文件的數量。命令行的構建方式與xargs
構建其命令行的方式大致相同。命令中只允許有一個{}
實例。該命令在起始目錄中執行。
命令行很難記住或記住,我不得不經常訪問此頁面以查看語法。你有沒有辦法記住這個命令? – ivanceras 2011-01-07 15:52:31
我不記得很多的命令。所以,我構建了接受參數的腳本。 – Nathan 2014-02-17 22:03:02