Как создать файл в Linux
Знание того, как создать новый файл, является важным навыком для любого, кто регулярно использует Linux. Вы можете создать новый файл либо из командной строки, либо из файлового менеджера рабочего стола.
В этом руководстве мы покажем вам различные способы быстрого создания нового файла в Linux с помощью командной строки.
Содержание
Подготовка
Чтобы создать новый файл, вам необходимо иметь права на запись в родительский каталог. В противном случае вы получите сообщение об ошибке в разрешении отказано.
Если вы хотите отобразить содержимое каталога, используйте команду ls
.
Создание файла с помощью сенсорной команды
Команда touch
позволяет нам обновлять метки времени в существующих файлах и каталогах, а также создавать новые пустые файлы.
Самый простой и запоминающийся способ создания новых пустых файлов — использовать touch
команду.
Чтобы создать новый файл, просто запустите touch
команду, после которой укажите имя файла, который вы хотите создать:
touch file1. txt
Если файл file1.txt
не существует, приведенная выше команда создаст его, в противном случае она изменит свои временные метки.
Чтобы создать сразу несколько файлов, укажите имена файлов через пробел:
touch file1.txt file2.txt file3.txt
Создание файла с помощью оператора перенаправления
Перенаправление позволяет захватывать выходные данные команды и отправлять их в качестве входных данных в другую команду или файл. Есть два способа перенаправить вывод в файл. Оператор >
перезапишет существующий файл, а оператор >>
добавит вывод в файл.
Чтобы создать пустой файл нулевой длины, просто укажите имя файла, который вы хотите создать, после оператора перенаправления:
> file1.txt
Это самая короткая команда для создания нового файла в Linux.
Создавая файл с использованием перенаправления, будьте осторожны, чтобы не перезаписать важный существующий файл.
Создание файла с помощью команды cat
Команда cat в основном используется для чтения и объединения файлов, но ее также можно использовать для создания новых файлов.
Чтобы создать новый файл, выполните команду cat, за которой следует оператор перенаправления >
и имя файла, который вы хотите создать. Нажмите Enter
введите текст и, когда вы закончите, нажмите CRTL+D
чтобы сохранить файлы.
cat > file1.txt
Создание файла с помощью команды echo
Команда echo
печатает строки, которые передаются в качестве аргументов в стандартный вывод, который можно перенаправить в файл.
Чтобы создать новый файл, запустите команду echo
за которой следует текст, который вы хотите напечатать, и используйте оператор перенаправления >
чтобы записать вывод в файл, который вы хотите создать.
echo "Some line" > file1.txt
Если вы хотите создать пустой, просто используйте:
echo > file1.txt
Создание файла с использованием Heredoc
Здесь документ или Heredoc — это тип перенаправления, который позволяет передавать команде несколько строк ввода.
Этот метод в основном используется, когда вы хотите создать файл, содержащий несколько строк текста, из сценария оболочки.
Например, чтобы создать новый файл file1.txt
вы должны использовать следующий код:
cat << EOF > file1.txtSome line
Some other line
EOF
Тело heredoc может содержать переменные, специальные символы и команды.
Создание большого файла
Иногда в целях тестирования может потребоваться создать большой файл данных. Это полезно, когда вы хотите проверить скорость записи вашего накопителя или проверить скорость загрузки вашего соединения.
Использование команды
dd
Команда dd
в основном используется для преобразования и копирования файлов.
Чтобы создать файл с именем 1G.test
размером 1 ГБ, выполните:
dd if=/dev/zero of=1G.test bs=1 count=0 seek=1G
Использование команды
fallocate
fallocate
командной строки для выделения реального дискового пространства для файлов.
Следующая команда создаст новый файл с именем 1G.test
размером 1 ГБ:
fallocate -l 1G 1G.test
Выводы
В этом руководстве вы узнали, как создать новый файл в Linux из командной строки с помощью различных команд и перенаправления.
Если командная строка вам не подходит, вы можете легко создать пустой текстовый файл, используя контекстное меню в диспетчере файлов.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Работа с файлами в каталоге при помощи циклов
21 сентября, 2020 11:38 дп 5 696 views | Комментариев нетLinux | Amber | Комментировать запись
Не все утилиты командной строки позволяют запускать одну команду для нескольких файлов одновременно, но с помощью сценариев оболочки и цикла for вы можете автоматически повторить любую команду.
Цикл – один из самых мощных аспектов в программировании. Он позволяет вам многократно применять одну и ту же логику к группе элементов, требуя при этом минимального количества кода.
В этом мануале мы научим вас перебирать файлы и применять команды с помощью оболочки Bash или zsh.
1: Перебор файлов
В этом мануале мы будем использовать цикл сценариев для оболочки. Этот конкретный метод управления встроен в оболочку командной строки Bash или zsh.
Вы можете применить следующие команды к любому каталогу по вашему выбору, но в этом мануале мы будем использовать тестовый каталог. Создайте каталог и несколько файлов, на которых можно потренироваться.
Сначала создайте каталог:
mkdir looping
Затем перейдите в него:
cd looping
С помощью команды touch создайте несколько текстовых файлов:
touch file-1.txt
touch file-2.txt
touch file-3.txt
touch file-4.txt
touch file-5.txt
Вы также можете быстро создать эти файлы, задав диапазон в скобках:
touch file-{1.
Чтобы просмотреть каталог и затем вывести имя файла, выполните следующую команду:
for FILE in *; do echo $FILE; done
Вы увидите следующий результат:
file-1.txt
file-2.txt
file-3.txt
file-4.txt
file-5.txt
Вы, наверное, заметили, что здесь используется подстановочный знак *. Он позволяет циклу for захватить каждый файл в каталоге. Вы можете изменить подстановочный знак на file-*, чтобы вывести все файлы, имена которых начинаются с file-, или на *.txt, чтобы вывести только текстовые файлы.
Теперь, когда вы знаете, как перебирать файлы в каталоге, давайте применим команду к этим файлам.
2: Применение команды
Все файлы, которые вы создали в предыдущем разделе, были созданы с помощью команды touch. Эти файлы пусты, поэтому применять к ним команду cat было бы не очень полезно.
К счастью, вы можете вставить текст в каждый файл с помощью одной команды, используя аналогичный цикл for.
Выполните следующую команду, чтобы вставить имя файла, новую строку и текст «Loops Rule!» в каждый файл:
for FILE in *; do echo -e "$FILE\nLoops Rule\!" > $FILE; done
Флаг -e в команде echo гарантирует сохранение новых строк.
Восклицательный знак нужно избежать с помощью обратного слеша, чтобы оболочка не интерпретировала символ как команду оболочки.
Теперь переберите каждый файл и выведите его содержимое:
for FILE in *; do cat $FILE; done
Теперь каждый файл содержит имя файла в первой строке и сообщение о том, что циклы классные, во второй строке.
file-1.txt
Loops Rule!
file-2.txt
Loops Rule!
file-3.txt
Loops Rule!
file-4.txt
Loops Rule!
file-5.txt
Loops Rule!
Дальше мы попробуем объединить эти примеры: сначала записать данные в файл, а затем отобразить его содержимое в одном цикле:
for FILE in *; do echo -e "$FILE\nLoops Rule\!" > $FILE; cat $FILE; done
Вы увидите следующий результат:
file-1. txt
Loops Rule!
file-2.txt
Loops Rule!
file-3.txt
Loops Rule!
file-4.txt
Loops Rule!
file-5.txt
Loops Rule!
При помощи точки с запятой (;) вы можете связать вместе любые необходимые команды.
Теперь давайте рассмотрим практический пример: создание резервных копий файлов.
3: Создание резервных копий файлов
Теперь, когда вы знаете, как работает цикл for, давайте попробуем сделать что-то полезное: возьмем каталог файлов и сделаем резервные копии с расширением .bak.
Выполните в своей оболочке следующую команду, которая создает резервную копию для каждого файла:
for FILE in *; do cp $FILE "$FILE.bak"; done;
С помощью команды ls отобразите все файлы:
ls -l
Вы увидите такой результат:
total 40K
-rw-r--r-- 1 8host 8host 29 Nov 7 18:34 file-1.txt
-rw-r--r-- 1 8host 8host 29 Nov 7 18:41 file-1.txt.bak
-rw-r--r-- 1 8host 8host 29 Nov 7 18:34 file-2. txt
-rw-r--r-- 1 8host 8host 29 Nov 7 18:41 file-2.txt.bak
-rw-r--r-- 1 8host 8host 29 Nov 7 18:34 file-3.txt
-rw-r--r-- 1 8host 8host 29 Nov 7 18:41 file-3.txt.bak
-rw-r--r-- 1 8host 8host 29 Nov 7 18:41 file-4.txt.bak
-rw-r--r-- 1 8host 8host 29 Nov 7 18:34 file-5.txt
-rw-r--r-- 1 8host 8host 29 Nov 7 18:41 file-5.txt.bak
Теперь у вас есть резервные копии всех ваших файлов. Их расширение указывает, что это резервные копии.
Создание копий в одном каталоге – это далеко не единственная задача, которую вы можете выполнить с помощью цикла. Вы можете также указать новый путь для файлов резервных копий. Следующая команда сохраняет резервные копии в папке /tmp/my-backups (если указанный каталог уже существует):
for FILE in *; do cp $FILE "/tmp/my-backups/$FILE.bak"; done;
Резервные копии будут созданы в новом каталоге.
Заключение
В этом мануале мы поэкспериментировали с циклом for и научились использовать его для перебора файлов и применения команд к нескольким фалам в каталоге.
Мак. PHP. fopen() не создает файл. Разрешения.
Еще 10 обсуждений, которые могут вас заинтересовать
1. AIX
Привет, Мы используем машины AIX. Как автоматически создать все файлы, сгенерированные в каталоге с правами 644. С уважением, Suresh (11 ответов)
Обсуждение начато: suresh4566
2. Программирование оболочки и создание сценариев
5Спасибо откликнувшимся. После безумного поиска и устранения неполадок, получения советов и отзывов от других, я был чертовски полон решимости продолжить свои уроки и нашел решение сам. Поиск по ключевым словам: php и «компьютер Mac», а также fopen и chmod. Используя:php и Mac и… (1 ответ)
Обсуждение инициировано: iHaveAQuestion
3. HP-UX
Насколько я знаю, Unix или Linux управляют только двумя типами пользователей: пользователем root или обычным пользователем. Все пользователи с userID = 0 будут иметь все права администратора, такие как пользователь root в системе. В моем случае я хочу создать нового пользователя в среде HP-UNIX со всеми правами суперпользователя, за одним исключением, что это… (5 ответов)
Обсуждение начато: hieucn1404
4. Программирование оболочки и создание сценариев
Привет всем, Мне нужно создать дубликаты каталогов и подкаталогов (только каталоги, а не файлы или содержимое файлов) с одинаковыми разрешениями. Может ли кто-нибудь помочь мне в этом. Я мог бы создать, но здесь разрешения должны быть такими же, как я могу сделать это в Linux. Спасибо за… (5 ответов)
Обсуждение начато: Olivia
5. Программирование оболочки и создание сценариев
Всем привет! Пожалуйста, помогите здесь, я новичок в PHP. У меня есть php-файл cronrefresh на веб-сайте, мне нужен этот скрипт для получения информации с URL-адреса сайта. Часть скрипта, в которой появляется переменная $URL: $fdURL = mysql_query(«SELECT * FROM affiliSt_config WHERE name.
Обсуждение начато: cgkmal
6. Программирование оболочки и создание сценариев
привет всем, есть скрипт, который я использую для создания файла журнала. я использую команду «touch out.log» для создания файла, а позже я хочу вывести строки в этот файл. по какой-то причине он продолжает выдавать мне эту ошибку, когда я пытаюсь создать файл; сенсорный: out.log не может создать у меня есть… (3 ответа)
Обсуждение начато: cesarNZ
7. UNIX для чайников Вопросы и ответы
Наконец-то я научился использовать su — на своем Mac из терминала. Теперь я хотел бы иметь возможность добавлять новых пользователей. useradd -m -d ….. не работает. (1 ответ)
Обсуждение начато: bigmac18
8. HP-UX
Привет, Я администратор Unix. Я должен предоставить пользователю права на создание нового файла в каталоге в системе HP-Ux 11.11, поскольку он не может создать новый файл в каталоге.