Записать короткий файл без редактора
Кавычки вокруг EOF отключают подстановку: $HOME попадёт в файл как текст.
> перезаписывает файл, >> дописывает в конец.
Команда cat печатает содержимое файла в терминал и склеивает несколько файлов в один поток.
cat /etc/hostname
напечатать файл
cat -n app.conf
с номерами строк
cat a.txt b.txt
два файла подряд
cat a.txt b.txt > all.txt
склеить в новый файл
cat -A file
показать табы ^I, концы строк $, \r ^M
cat -s file
схлопнуть повторяющиеся пустые строки
tac file
строки в обратном порядке
sudo cat /etc/shadow
файл, доступный только root
cat (concatenate) читает файлы по очереди и печатает их в стандартный вывод. Чаще
всего им смотрят короткий файл целиком:
Второе назначение — склейка: cat part1 part2 > whole пишет оба файла в один.
Без аргументов cat читает клавиатуру до Ctrl+D — так быстро создают маленький
файл.
Длинный файл cat прокручивает мимо экрана целиком. Его листают в less, начало
смотрят head, конец — tail.
У cat мало ключей, и все они про вид вывода. Полный список — man cat.
| Ключ | Что делает | Пример |
|---|---|---|
-n |
Нумеровать все строки вывода. | cat -n app.conf |
-b |
Нумеровать только непустые строки. | cat -b app.conf |
-A |
Показать невидимое — табы как ^I, концы строк как $, \r как ^M. | cat -A deploy.sh |
-s |
Схлопнуть несколько пустых строк подряд в одну. | cat -s notes.txt |
-E |
Поставить $ в конце каждой строки — видно хвостовые пробелы. | cat -E app.conf |
-T |
Показать табы как ^I. | cat -T Makefile |
Ничего не найдено. Попробуй запрос короче.
Кавычки вокруг EOF отключают подстановку: $HOME попадёт в файл как текст.
> перезаписывает файл, >> дописывает в конец.
^M$ в конце строк — переводы строк Windows (\r\n). Из-за них сценарий
падает с bad interpreter. Убрать: sed -i 's/\r$//' deploy.sh.
cat file | grep error работает, но лишний процесс не нужен: grep читает файл
сам — grep error file.
Файл читает только root или группа. Посмотри права: ls -l /etc/shadow. Если
доступ действительно нужен — sudo cat /etc/shadow.
Перенаправление > выполняет твоя оболочка, без прав root, ещё до запуска sudo.
Пиши через tee: echo '127.0.0.1 app' | sudo tee -a /etc/hosts — см. tee.
Ты вывел двоичный файл, и управляющие байты переключили терминал. Набери вслепую
reset и Enter. Тип файла заранее покажет file имя — см. file.
cat не останавливается на каждом экране. Для чтения бери less файл, для
последних строк — tail -n 50 файл.
cat > файл стирает файл до чтенияcat a.txt > a.txt оставит пустой файл: оболочка обнуляет a.txt для записи до
того, как cat начнёт читать, — и ошибки при этом нет. То же с любым > на существующий файл. Дописывай
>> или пиши результат в новый файл, а потом переименуй его через mv.
Есть неточность? Сообщить об ошибке в статье