Список скрытых файлов без использования - ( * |

Можно ли перечислить скрытые файлы без использования символов, упомянутых выше? Это означает, что не следует использовать какие-либо параметры или подстановочный знак *, а также некоторые другие символы (например, это запрещено ls -a, ls -d, .!(|.), echo .* так далее.).

4 ответа

Решение

find . перечислит все файлы, включая скрытые.

Следствие: кто-то думает, что это хорошая идея - учить внедрению команд, занося в черный список отдельные символы и, возможно, даже команды в вашем скрипте. Это активно пагубно для вашего изучения оболочки, потому что вы в конечном итоге получаете хаки, такие как escape-символы или полагаетесь на специфичную для Ubuntu конфигурацию по умолчанию, которая не сможет обрабатывать специальные имена файлов.

На самом деле это звучит так, как будто кто-то придумал это eval по какой-то причине (что всегда * ужасная идея), а не просто выполнение представленного кода или сценария напрямую.

Абсолютно простой способ зацикливания скрытых файлов

for file in .*
do
    my_command "$file"
done

* Или так чертовски близко к всегда, что вам лучше прочитать и понять всю статью Bash wiki об этом, прежде чем даже подумать об использовании.

Ubuntu имеет псевдоним по умолчанию для ls -la, Вы можете просто использовать

la
echo `printf '.\x2A'`

Таблица Юникода для победы.

echo .

Это уже встроено в Bash, чтобы сделать это. Даже не нужно выполнять команду.

echo .

Если вам абсолютно необходима команда (но вам все еще не нужны внешние процессы).

Другие вопросы по тегам