我想从/media/movies
列出所有文件夹,并在/tmp/movies
中创建具有相同名称的文件夹
以下代码段对我来说很好,除了带空格的名称,不知道如何引用
mkdir /tmp/movies
cd /tmp/movies/
ls -1 -d /media/share/*/ | xargs mkdir
名称中还有括号(
和)
以及单个'
你是下一个(2011)(tt1853739)
答案 0 :(得分:5)
cd /media/movies
for dir in */
do
mkdir "/tmp/movies/$dir"
done
或者在一条线上:
cd /media/movies && for dir in */; do mkdir "/tmp/movies/$dir"; done
答案 1 :(得分:2)
这应该有效:
find /media/movies -maxdepth 1 -type d -exec bash -c "mkdir /tmp/\"$(basename {})\"" \;
如果您仍然引用问题,请尝试以下方法:
find /media/movies -maxdepth 1 -type d -printf "%f" -exec mkdir "/tmp/{}" \;
答案 2 :(得分:1)
您可以使用-I
中的xargs
选项准确设置ls -1
输出的确切位置。然后,您可以将输出放在引号内,以便将带空格的名称视为单个单词。试试这个:
ls -1 /media/share/ | xargs -I % mkdir "%"