подстановочные знаки на исполняемых файлах (двоичные файлы)

Я могу использовать подстановочные знаки для выбора определенных типов файлов их расширениями, например.

mv *.cc src/

Как выбрать исполняемые файлы, которые не имеют расширения?

1
задан 1 March 2018 в 18:40

2 ответа

Это проверяет исполняемый бит и переместит все файлы в каталог, в котором Вы находитесь в src/.

find . -maxdepth 1 -type f -perm +a=x -print0 | xargs -0 -I {} mv {} src/

Это не проверяет то, что имя файла (так xxxx и xxxx.cc, и что-либо еще перемещено, пока это - "файл" (-type f) "x" (выполняются), разрешение установлено (-perm +a=x)).

3
ответ дан 3 December 2019 в 06:52

Шарики удара AFAIK не поддерживают это - но zsh делает через его спецификаторы шарика.

Например, спецификатор для исполняемых простых файлов (скорее смутно) * например.

ls -l *(*)

перечислит исполняемые двоичные файлы и сценарии. Это еще не обеспечивает спецификатор для двоичных файлов явно, однако это действительно позволяет Вам определять свое собственное, как описано в zsh спецификаторе шарика для исключения двоичных файлов так, например, Вы могли сделать

mv -- *(*e:'file --brief --mime $REPLY | grep -q binary':) exec/

или определите функцию помощника

binary() { file --brief --mime $REPLY | grep -q binary }

затем

mv -- *(*+binary) exec/

(Я добавил --brief предотвратить возможные ложные соответствия на имени файла.)

1
ответ дан 3 December 2019 в 06:52

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

Похожие вопросы: