touch ~/Desktop/something.txt
В результате получится пустой txt
файл.
Или
echo "Hello" > ~/Desktop/somethingelse.txt
Создается файл txt
с надписью "Здравствуйте".
nano ~/Desktop/anotherfile.txt
Откроется ~/Desktop/another file.txt
в nano
, или, если его нет, он создаст его и откроет в nano
.
То же самое можно сделать, просто заменив нано
на emacs
или vim
, и он будет использовать emacs
или vim
вместо nano
Файловые дескрипторы принадлежат процессу: то есть текущему процессу. Сразу после выхода из процесса назначения не действуют. Даже подоболочка (или любой дочерний процесс), наследующая файловые дескрипторы, из fork () вызывает свои собственные копии файловых дескрипторов (файловый дескриптор - это просто число, указывающее на ресурс ввода-вывода в ядре Linux). Это похоже на открытые файлы - открытие файла в одном процессе не делает его открытым для всех, и если вы не закроете его самостоятельно, Linux закроет его и очистит, когда процесс завершится.
Как мы узнаем, какое значение содержит какой файловый дескриптор (печать значений файлового дескриптора с помощью оболочки)
Вы может перечислить все файловые дескрипторы процесса, используя файловую систему / proc
, используя
ls -l /proc/<PID>/fd
Пример:
$ ls -l /proc/2218/fd
total 0
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 0 -> /dev/null
l-wx------ 1 setacinq setacinq 64 Mar 14 09:29 1 -> /dev/null
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 18 -> pipe:[14524]
l-wx------ 1 setacinq setacinq 64 Mar 14 09:29 19 -> pipe:[14524]
l-wx------ 1 setacinq setacinq 64 Mar 14 09:29 2 -> /home/setacinq/.xsession-errors
lrwx------ 1 setacinq setacinq 64 Mar 14 09:29 22 -> anon_inode:[eventfd]
lrwx------ 1 setacinq setacinq 64 Mar 14 09:29 23 -> anon_inode:[eventfd]
lrwx------ 1 setacinq setacinq 64 Mar 14 09:29 28 -> socket:[14566]
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 30 -> /usr/share/unity/lenses/commands/commands.lens
lrwx------ 1 setacinq setacinq 64 Mar 14 09:29 32 -> socket:[11753]
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 35 -> /usr/share/unity/lenses/music/music.lens
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 36 -> /usr/share/unity/lenses/files/files.lens
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 37 -> /usr/share/unity/lenses/applications/applications.lens
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 38 -> /usr/share/unity/lenses/video/video.lens
lr-x------ 1 setacinq setacinq 64 Mar 14 09:29 8 -> anon_inode:inotify
lrwx------ 1 setacinq setacinq 64 Mar 14 09:29 9 -> /home/setacinq/.config/compiz-1/compizconfig/done_upgrades