我目前正在使用:
find "$location" -maxdepth 1 -type d -exec basename {} \;
显示当前位置的所有目录。但是,我想添加" - " (每种清单项目前面的一种要点)。这可能吗?
答案 0 :(得分:5)
find
内置了所有内容。
find "$location" -maxdepth 1 -type d -printf '- %f\n'
序列%f
只获得基本名称; %h
是dirname
等等。
答案 1 :(得分:1)
您可以使用:
while IFS= read -rd '' dir; do
echo "- ${dir##*/}"
done < <(find . -maxdepth 1 -type d -print0)
答案 2 :(得分:0)
当然!试试这个:
#!/bin/bash
find "$location" -maxdepth 1 -type d -exec basename {} \; | sed 's/^/- /'
这将find命令输出的每一行发送到sed。然后,sed将行^
的开头替换为'- '
。
答案 3 :(得分:0)
这比为每个项目执行程序更有效: (假设文件名没有新行)
find / -maxdepth 1 -type d |
sed 's:^.*/::; s:^:-:' #get basename and prepend -