Как выполнить поиск по двум разным именам

Любое запоминающее устройство можно открыть в любой другой компьютерной системе при условии, что операционная система поддерживает эту файловую систему.

Для EXT4 , как правило, но не всегда. Да, если это RHEL/CentOS 7.x или SLES 12.x. Я знаю, что SLES 11.4, например, имел ограниченную поддержку EXT4, а SLES 11.3, по-моему, вообще не поддерживал EXT4. По мере того, как мы приближаемся к будущему, EXT4 становится более универсальным, чем более твердое «да».

EXT3 например, очень вероятно, что да для любой Linux-системы, потому что эта файловая система существует достаточно часто, где она поддерживается везде, а также EXT2 и XFS.

Microsoft Windows не поддерживает это, поэтому подключение отформатированного хранилища EXT4 к чему-либо Microsoft Windows было бы нет {я знаю, что вы не спрашивали об этом}.

С файловой системой Microsoft NTFS, которая может быть смонтирована для чтения/записи в системе Linux, если драйвер файловой системы ntfs-3gустановлен и работает; linux изначально не поддерживает файловую систему NTFS, вам нужно выйти и вручную получить / установить этот конкретный драйвер файловой системы, чтобы операционная система могла понять и использовать файловую систему такого типа.

с драйвером ntfs -3g для Linux, который может сделать NTFS наиболее универсальной при рассмотрении Microsoft Windows, но только для Linux система EXT3 в настоящее время может быть лучшим выбором по сравнению с EXT4, учитывая, что более старая используется система Linux, которая не имеет программной поддержки EXT4. И XFS может быть наиболее широко поддерживаемой.

1
03.09.2021, 15:57
1 ответ
find "$dir" \( -name stdout -o -name stderr \) -exec...

Или с GNUfind:

find "$dir" -regextype posix-extended -regex ".*/(stdout|stderr)" 

Просто обратите внимание, что -regexсоответствует всему пути, больше похожему на -path, чем на -name, и регулярное выражение привязано, как если бы было неявное ^в начале и $в конце. Также имейте в виду, что, поскольку .*соответствует любой последовательности из символов , он не найдет stdout/ stderrфайлы в каталогах, путь которых не может быть декодирован как символы в локали.

Также помните, что произойдет сбой, если $dirначинается с -или совпадает с именем предиката find.

В BSD findможно сделать:

find -E -f "$dir" -- -regex '.*/std(out|err)'

Выше "$dir"передается в качестве аргумента опции -f, поэтому не возникает двусмысленности и проблем со значениями $dir, начинающимися с -. -Eвключает расширенные регулярные выражения, такие как grepили sed.

5
03.09.2021, 16:03

Теги

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