Пробелы в именах файлов
Именование файлов и каталогов, по существу, не регламентируется, за исключением того, что имена ограничены по длине и не должны содержать косой черты или нули. В частности, допускаются пробелы. К сожалению, система UNIX имеет давнюю традицию разделения аргументов командной строки на пробелы, поэтому устаревшее ПО имеет тенденцию давать сбой, когда в именах файлов появляются пробелы.
Пробелы в именах файлов были обнаружены прежде всего в файловых системах, совместно используемых с компьютерами Мас и персональными компьютерами, но теперь они внедрились в культуру UNIX и также встречаются в некоторых стандартных пакетах программного обеспечения. Выхода нет: административные сценарии должны быть готовы обрабатывать пробелы в именах файлов (не говоря уже об апострофах, звездочках и различных других угрожающих пунктуационных метках).
В оболочке и в сценариях можно указывать имена файлов с пробелами, чтобы держать их части вместе. Например, команда
считает файл
выводит на экран длинный список всех файлов в каталоге
@linuxkalii
Именование файлов и каталогов, по существу, не регламентируется, за исключением того, что имена ограничены по длине и не должны содержать косой черты или нули. В частности, допускаются пробелы. К сожалению, система UNIX имеет давнюю традицию разделения аргументов командной строки на пробелы, поэтому устаревшее ПО имеет тенденцию давать сбой, когда в именах файлов появляются пробелы.
Пробелы в именах файлов были обнаружены прежде всего в файловых системах, совместно используемых с компьютерами Мас и персональными компьютерами, но теперь они внедрились в культуру UNIX и также встречаются в некоторых стандартных пакетах программного обеспечения. Выхода нет: административные сценарии должны быть готовы обрабатывать пробелы в именах файлов (не говоря уже об апострофах, звездочках и различных других угрожающих пунктуационных метках).
В оболочке и в сценариях можно указывать имена файлов с пробелами, чтобы держать их части вместе. Например, команда
$ less "Му spacey file"
считает файл
Му spacey file
в качестве единственного аргумента команды less
. Также можно избежать отдельных пробелов с помощью обратной косой черты: $ less Му\ spacey\ file
Функция завершения имени файла большинства оболочек (зачастую привязанная к клавише <Таb>) обычно автоматически добавляет обратную косую черту. Когда вы пишете сценарии, полезным оружием, о котором нужно знать, является опция -print0
. В сочетании с параметром xargs -0
она делает комбинацию find /xargs
корректной, независимо от пробелов, содержащихся\ в именах файлов. Например, команда $ find / home-type f -size + 1М -print0 1 xarqs -0 ls -1
выводит на экран длинный список всех файлов в каталоге
/home
размером более одного мегабайта@linuxkalii