Все, что вам нужно знать о создании файлов в операционных системах на базе LINUX

Файловая система Linux рассматривает все как файл. От текстовых/медийных/бинарных файлов и каталогов до аппаратных устройств, подключенных физически, — все в Linux является файлом. Если это не файл, то это должен быть процесс. В Linux файлы образуют древовидную структуру для управления данными. Существует очень много способов создать файл в linux, поэтому давайте рассмотрим несколько традиционных способов сделать это.

Правила существования файлов в файловой системе Linux

  1. Файлы *чувствительны к регистру* (в отличие от Windows). Так, temp.txt, Temp.txt и TEMP.txt — это разные файлы.
  2. У пользователей должны быть разрешения на создание файла в родительской папке.
    1. Проверьте разрешение с помощью команды ls -al.
    2. Убедитесь, что вы являетесь пользователем или входите в группу.
  3. Вы можете использовать другие специальные символы, такие как пробел, но их трудно использовать, и лучше их избегать.
  4. Имена файлов могут содержать любые символы, кроме / , который зарезервирован как разделитель между файлами и каталогами в имени пути. Вы не можете использовать нулевой символ.
  5. Для идентификации файлов используйте расширение имени файла, основанное на точке. Например:
    1. .sh = файл оболочки
    2. .tar.gz = сжатый архив
  6. Большинство современных Linux и UNIX ограничивают имена файлов 255 символами (255 байт). Однако некоторые старые версии системы UNIX ограничивают имена файлов только 14 символами.
  7. Имя файла должно быть уникальным в пределах своего каталога. Например, внутри каталога /root нельзя создать файл file.txt и имя каталога file.txt.
  8. Избегайте включения этих символов в имена файлов /><|:&.
  9. Заключайте имя файла в одинарные кавычки 'file.txt'.

Небольшой фрагмент эксперимента с созданием файлов в Linux:

root@aaf52077a089:/# cd /root
root@aaf52077a089:~# touch '!@#$%^&*(()_+-{}[]":></?><'
touch: cannot touch '!@#$%^&*(()_+-{}[]":></?><': No such file or directory
root@aaf52077a089:~# touch '!@#$%^&*(()_+-'
root@aaf52077a089:~# touch file.txt
root@aaf52077a089:~# touch  File.txt
root@aaf52077a089:~# mkdir file.txt
mkdir: cannot create directory 'file.txt': File exists
root@aaf52077a089:~# ls -al
total 16
-rw-r--r-- 1 root root    0 Jul 16 11:19 '!@#$%^&*(()_+-'
drwx------ 1 root root 4096 Jul 16 11:20  .
drwxr-xr-x 1 root root 4096 Jul 16 11:17  ..
-rw-r--r-- 1 root root 3106 Oct 15  2021  .bashrc
-rw-r--r-- 1 root root  161 Jul  9  2019  .profile
-rw-r--r-- 1 root root    0 Jul 16 11:20  File.txt
-rw-r--r-- 1 root root    0 Jul 16 11:20  file.txt
Вход в полноэкранный режим Выход из полноэкранного режима

Традиционные способы создания файлов в Linux

Мы можем легко создавать файлы с помощью стандартного файлового менеджера (GUI). Но в этом нет ничего интересного. Давайте рассмотрим несколько интересных способов создания файлов с помощью командной строки.

    1. Метод для всех — touch file.txt.
    2. Расширенное использование.
# Create a new empty file(s) or 
# change the times for existing file(s) to the current time:
touch path/to/file

# Set the times on a file to a specific date and time:
touch -t YYYYMMDDHHMM.SS path/to/file

# Set the time on a file to one hour in the past:
touch -d "-1 hour" path/to/file

# Use the times from a file to set the times on a second file:
touch -r path/to/file1 path/to/file2

# Create multiple files:
touch path/to/file{1,2,3}.txt

Credit: cheat.sh
Вход в полноэкранный режим Выход из полноэкранного режима
  1. Текстовые редакторы — nano, vim, vi, neovim.
    1. Они будут создавать файлы в текущих временных метках.
    2. Синтаксис: text_editor path/to/file.txt.
  2. Используя cat , echo или любую другую команду с оператором > или >>. Мы можем использовать STDOUT для создания/дополнения файла.
    1. Вы можете использовать простые трюки bash, чтобы использовать cat/bat для создания файлов.
    2. Синтаксис: cat > file.txt , cat >> file.txt.
root@aaf52077a089:~/dir_test# cat file.txt
cat: file.txt: No such file or directory
root@aaf52077a089:~/dir_test# cat > file.txt
Creating and writing a file with cat command is so cool.
Writing on 2nd line    
^C
root@aaf52077a089:~/dir_test# cat file.txt
Creating and writing a file with cat command is so cool.
Writing on 2nd line
root@aaf52077a089:~/dir_test# cat >> file.txt
Writing on 3rd line
^C
root@aaf52077a089:~/dir_test# cat file.txt
Creating and writing a file with cat command is so cool.
Writing on 2nd line
Writing on 3rd line
root@aaf52077a089:~/dir_test# ls -al
total 12
drwxr-xr-x 2 root root 4096 Jul 16 11:55 .
drwx------ 1 root root 4096 Jul 16 11:55 ..
-rw-r--r-- 1 root root   97 Jul 16 11:57 file.txt
Вход в полноэкранный режим Выход из полноэкранного режима

Классные непрактичные методы

  1. Вставьте аппаратное устройство в устройство Linux. Будет создан файл.
  2. Создавайте файлы фиксированного размера. (10 МБ)
fallocate -l $((10*1024*1024)) file.txt
# This option doesn't use input/output overhead, the space will be allocated immediately.

truncate -s 10M file.txt
# This creates a file full of null bytes.

dd if=/dev/urandom of=ostechnix.txt bs=10MB count=1
# This command will create a non-sparse file full of null bytes.

head -c 10MB /dev/urandom > file.txt
# This command will create a non-sparse file full of null bytes.
Войти в полноэкранный режим Выйти из полноэкранного режима

Большое спасибо, что прочитали эту статью. Следуйте за мной, чтобы узнать больше!

Оцените статью
devanswers.ru
Добавить комментарий