我的问题:由于路径中的空格,文件不会被删除。
我尝试做的事情:手动启动和结束路径前缀。它可以工作。但是,我无法以编程方式执行。
现有代码
su
destination_path="/mnt/sdcard/abc/cde/"
mkdir -p $destination_path
mv /mnt/sdcard/location.ini $destination_path
cd $destination_path
while read line
do
path=/mnt/sdcard/$line/
rm $path/*
done < location.ini
Location.ini 看起来像
DCIM/Camera/
abc/cde efg/hij/kl/mn op/
我在寻找什么: 用于确保删除Location.ini中提到的所有目录的代码。
详细信息: 在android控制台(shell)中运行
答案 0 :(得分:0)
我实际上使用sed
而不是双引号字符串:
su
destination_path="/mnt/sdcard/abc/cde/"
mkdir -p $destination_path
mv /mnt/sdcard/location.ini $destination_path
cd $destination_path
while read line
do
path = `echo $line | sed s/\ /\\\\\ /`
path = /mnt/sdcard/$path
rm $path/*
done < location.ini
反引号强制执行代码,结果放在path
变量中。
答案 1 :(得分:0)
要以编程方式执行此操作,请将$line
括在引号中
path="/mnt/sdcard/$line"
rm="$path"/*
要测试一下,
$mkdir Test\ this
$cat input
Test this
$while read line; do cd $line; done < input
bash: cd: Test: No such file or directory
$while read line; do cd "$line"; done < input
$pwd
/home/xxx/Test this