Я использую этот скрипт, чтобы отфильтровать все папки с именами, начинающимися с '_'. Вероятно, он не будет работать с папками, в которых есть пробелы, но вы можете изменить его.
#!/bin/sh
A=`ls /j/ | xargs | sed 's/_[a-z0-9]*//g' | awk '{$1=$1;print}'`
W=`echo $A | wc -w | tr -d '[[:space:]]'`
echo $W
В общем, интересная часть такова:
ls some_folder | xargs | sed 's/_[a-z0-9]*//g'
Регулярное выражение _[a-z0-9]*
содержит шаблон для сопоставления с именем, которое должно быть исключено.
Это если вы хотите список папок без -a
вариант (только имена). Если вы хотите использовать -a
тогда самое простое:
ls -la | grep -v skip_folder
где skip_folder
это имя, которое вы хотите исключить. Используйте кавычки, если папка содержит пробелы, например:
ls -la | grep -v "skip folder"
ls -ll
, Я знаю, что могу передать результат поиска в сценарий оболочки, содержащийwhile
, но я думаю, что это будет очень медленно.