1
A
回答
2
不,沒有標準的工具(雖然沒有什麼能阻止你從編寫這樣的野獸)。
的常用方法做這樣的事情是有一個條件序列:
rm -rf folder_name && mkdir -p folder_name
這將做rm
,然後,只要它返回成功,使目錄重新。
一個你如果你想要一個簡單的「命令」可以做的事情是把它放在一個函數:
remakedir()
{
[[ -n "$1" ]] && rm -rf "$1" && mkdir -p "$1"
}
然後一些簡單的測試表明它在行動:
pax> remakedir /tmp/xyzzy ; touch /tmp/xyzzy/plugh1 ; ls -al /tmp/xyzzy
total 8
drwxrwxr-x 2 pax pax 4096 Jun 23 09:29 .
drwxrwxrwt 10 root root 4096 Jun 23 09:29 ..
-rw-rw-r-- 1 pax pax 0 Jun 23 09:29 plugh1
pax> remakedir /tmp/xyzzy ; touch /tmp/xyzzy/plugh2 ; ls -al /tmp/xyzzy
total 8
drwxrwxr-x 2 pax pax 4096 Jun 23 09:29 .
drwxrwxrwt 10 root root 4096 Jun 23 09:29 ..
-rw-rw-r-- 1 pax pax 0 Jun 23 09:29 plugh2
+0
請注意,這將刪除當前目錄中的所有內容,這意味着如果當前內容大小可用,則可以在刪除運行時注入新項目,從而導致操作不穩定時間過長。 – ChuckCottrill
1
Posix沒有一個可以做你想做的事情的命令。但是,以下內容將(大部分)完成您想要的內容(減少目錄缺失和/或不可用時的時間窗口)。
建立一個臨時目錄(保存你即將刪除的東西)。
delete=`mktemp -d ./delete.XXXXXX`
folder="folder_name"
將現有的文件夾移到一邊(以便以後刪除)。這是 '關鍵部分',
mv ${folder} ${delete}/ && mkdir ${folder}
然後刪除(先前)存在於您的方便,
if [ -d ${folder} ] ; then rm -rf ${delete}/; fi
相關問題
- 1. Bash命令 - 刪除目錄
- 2. 使用單行命令刪除目錄
- 3. Java重命名舊目錄或刪除它以創建一個新目錄
- 4. 是否可以在同一命令上創建多個目錄?
- 5. 創建後無法刪除目錄
- 6. 我可以通過刪除目錄來刪除imagemagick嗎?
- 7. 我可以在客戶端PC上創建一個目錄嗎?
- 8. 是否可以在單個命令中編譯src目錄?
- 9. 我可以在GitHub的子目錄中創建README文件嗎?
- 10. 我可以在數據庫目錄中創建文件嗎?
- 11. DOS命令來刪除特定目錄
- 12. 使用svn一次刪除多個目錄,然後我可以用同名的新目錄替換它們
- 13. 創建下使用單個命令所有目錄的新目錄:Linux的
- 14. bash命令刪除所有,但最後5個目錄
- 15. 我可以用一行代碼創建2個目錄嗎?
- 16. 如何在一個Perl命令中創建目錄和父目錄?
- 17. 我可以在$ git clone和$ make install後刪除目錄
- 18. 我可以指定shell命令的目錄嗎?
- 19. 我可以在不改變母目錄的情況下在母目錄下創建並行子目錄嗎?
- 20. 創建一個目錄,然後在裏面創建文件
- 21. 我可以在wordpress根目錄下創建「inc」文件夾嗎?
- 22. 顯示wordpress目錄的URL - 我可以刪除它嗎?
- 23. 什麼是npm tmp目錄?我可以刪除它嗎?
- 24. 使用Windows命令行在每個目錄下創建子目錄
- 25. Python3 venv:env目錄可以重命名嗎?
- 26. 創建從後值中的目錄,然後插入內容到該目錄
- 27. 創建目錄並最終刪除它
- 28. 我可以在Bonobo GIT服務器中創建多個存儲庫目錄嗎?
- 29. gradle可以創建java項目目錄結構嗎?
- 30. 輸入dirs命令後,我將在哪個目錄中?
是'RM ..; mkdir ..'(也就是說,使用[command sequence](https://unix.stackexchange.com/questions/184493/consecutive-commands))是不夠的?這些通常是兩個不同的行爲 - 因此是兩個不同的命令。或者,只需刪除目錄的*內容*,但對inode有不同的影響,可能是權限。 – user2864740
剛剛用'rm -rf folder_name/*'刪除內容怎麼樣? –