Jef*_*zel 3 bash shell command-line
我写了一个主要为我工作的脚本.但是,最后的两个rmdir命令有时会返回Directory not empty错误.我怎么打败这个?我尝试添加 r,然后-rf返回Illegal option错误.
我是新手,我会感激任何帮助.这是完整的shell脚本,它再次大部分都在工作:
if [[ -z "${1}" ]]; then
die "FolderName Required"
fi
newDirName="DirectoryName"
newBaseDir="/Users/JSG/Desktop/DataFarm/$1/"
/bin/mkdir -p $newBaseDir/{ProtectedOrig,Data}
echo -n "---Data Folder Setup
---Data Introduction
---Data Audit/Manipulation
---Data Queries" > $newBaseDir/Data/$1_DataJournal.txt
ditto NewData/ NewDataCopy
fab deploy_data_to_s3:data=*
mv NewData/ $newBaseDir/ProtectedOrig/NewData
mv NewDataCopy/ $newBaseDir/Data/NewDataCopy
mv $newBaseDir/Data/NewDataCopy/* $newBaseDir/Data/
rmdir $newBaseDir/Data/NewDataCopy
mv $newBaseDir/ProtectedOrig/NewData/* $newBaseDir/ProtectedOrig/
rmdir $newBaseDir/ProtectedOrig/NewData
chflags -R uchg $newBaseDir/ProtectedOrig/
mkdir NewData
Run Code Online (Sandbox Code Playgroud)
我错过了什么?并提前感谢!
Suh*_*tel 10
对于该rmdir命令,您需要添加该--ignore-fail-on-non-empty标志,以便删除该目录,即使文件位于其中,如下所示:
rmdir --ignore-fail-on-non-empty $newBaseDir/Data/NewDataCopy
Run Code Online (Sandbox Code Playgroud)
你也可以使用它rm -r:
rm -r $newBaseDir/Data/NewDataCopy
Run Code Online (Sandbox Code Playgroud)
来自维基百科条目:
如果目录在UNIX中不为空,则rmdir不会删除该目录.使用rm命令以递归方式删除目录及其所有内容的正确方法.
| 归档时间: |
|
| 查看次数: |
15377 次 |
| 最近记录: |