touch linux что это
Команда Touch Linux
Linux Touch Command
В этом руководстве мы покажем Вам, как использовать сенсорную команду, на практических примерах и подробных объяснениях наиболее распространенных опций команды.
Сенсорная команда позволяет нам обновлять временные метки для существующих файлов и каталогов, а также создавать новые, пустые файлы.
Временные метки файлов Linux
Прежде чем перейти к использованию команды touch, давайте начнем с просмотра временных меток файлов в Linux.
Файл в Linux имеет три метки времени:
Чтобы отобразить состояние файла, включая временные метки, используйте stat команду.
Создание нового файла требует разрешения на запись в родительский каталог. В противном случае вы получите ошибку «Отказано в разрешении».
Как использовать сенсорную команду
В простейшем виде, когда используется без каких-либо опций, если имя файла, указанное в качестве аргумента, не существует, touch создаст новый файл.
Если файл уже существует, коснитесь, чтобы изменить время последнего доступа к файлу и время модификации на текущее время.
Например, если файл file1 не существует, в противном случае его создаст следующая команда, которая изменит свои временные метки:
Чтобы создать или изменить несколько файлов одновременно, укажите имена файлов в качестве аргументов:
Например, если файл file1 существует, следующая команда изменит временные метки файла, в противном случае она ничего не будет делать:
Изменение только времени доступа или модификации
Изменить только время доступа
Изменить только время изменения
При изменении времени изменения время изменения также будет обновлено.
Установка конкретных временных меток
Например, чтобы изменить время последнего доступа и изменения file1 на 1 июня 2018 г. 11:02, вы должны использовать следующую команду:
Строка даты должна быть заключена в одинарные кавычки.
Вы также можете предоставить частичную строку даты и времени для сенсорной команды. Предоставляя только дату, автоматически меняет год на текущий:
Например, следующая команда установит время последнего доступа и изменения file1 на 1 июня 11:02 текущего года.
Использование метки времени другого файла
Например, следующая команда скажет touch использовать время file1 для file2 :
Изменение временной метки символической ссылки
По умолчанию, если вы используете сенсорную команду для символической ссылки, она изменит временные метки своего ссылочного файла.
Например, чтобы изменить метки времени символической ссылки, symlink1 вы должны использовать:
Вывод
К настоящему времени вы должны хорошо понимать, как использовать сенсорную команду Linux.
Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями
Продолжение перевода первой части руководства. Начало тут.
В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.
Использование команд Linux
Знакомство с ls
А сейчас, мы быстренько пройдемся по команде ls. Скорее всего вы уже хорошо знакомы с этой командой, и знаете, что набрав ls получите список содержимого текущей рабочей директории:
Развернутые списки директорий
Смотрим на директории
Рекурсивный и инодный списки
Понятие инода
Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки «.» и «..», которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория «..», мы сперва взглянем на номер инода у /usr/local:
У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:
Как видно, директория /usr/local/bin/.. имеет такой же номер, как у /usr/local! Посмотрим, как можно справиться с этим шокирующим откровением. В прошлом мы полагали, что /usr/local сама является директорией. Теперь же, мы обнаружили, что фактически директория — это инод с номером 5120, и нашли, по меньшей мере, два элемента (называемых «ссылками»), которые указывают на данный инод. И /usr/local, и /usr/local/bin/.. — ссылки на 5120-ый инод. Хотя этот инод и существует только в одном месте на диске, тем не менее на него может быть множество ссылок.
Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:
/usr/local
/usr/local/.
/usr/local/bin/..
/usr/local/games/..
/usr/local/lib/..
/usr/local/sbin/..
/usr/local/share/..
/usr/local/src/..
mkdir
Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:
$ cd /tmp
$ mkdir tic tac toe
По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:
$ mkdir won/der/ful
mkdir: cannot create directory `won/der/ful’: No such file or directory
$ mkdir won
$ mkdir won/der
$ mkdir won/der/ful
В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.
touch
Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:
Теперь, когда файл существует, давайте добавим немного данных в него. Можно сделать это с помощью команды echo, которая принимает аргументы и печатает их на стандартный вывод. Сперва, команда echo сама по себе:
$ echo «firstfile»
firstfile
А сейчас, та же команда echo, но с перенаправлением вывода:
$ echo «firstfile» > copyme
cat и cp
Чтобы вывести содержимое файла на терминал, используйте команду cat:
$ cat copyme
firstfile
Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:
$ cp copyme copiedme
Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:
А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.
Номер инода у перемещаемого файла остается прежним до тех пор, пока файл назначения находится в той же файловой системе, что и исходный файл. Мы подробнее рассмотрим файловую систему в третьей части нашего руководства.
Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться
$ mv /var/tmp/myfile.txt /home/drobbins
После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile.txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.
Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:
$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins
Об авторах
Daniel Robbins
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.
Aron Griffis
Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».
Создание файлов в Linux. Команда touch
В Linux у каждого файла есть временные метки. В них хранится информация о времени последнего доступа, времени последней модификации (изменения содержимого) и времени последнего изменения (изменения метаданных). Поэтому при создании нового файла, доступе к файлу или его модификации временные метки этого файла автоматически обновляются.
В данном руководстве мы рассмотрим несколько полезных практических примеров использования команды touch. Это стандартная программа операционных систем Unix/Linux, используемая для создания и изменения временных меток файлов.
Синтаксис touch
Опции команды следующие:
-a изменить только время доступа
-m изменить только время модификации
-c не создавать файл, если он не существует
-r использовать время доступа и модификации заданного файла
-t использовать заданные дату и время вместо текущего
-d использовать дату и время, заданные в виде строки
—help вывести справочное сообщение и выйти
—version вывести информацию о версии и выйти
Создание пустого файла
Следующая команда создает новый пустой (размером 0 байт) файл с именем file1:
Создание нескольких файлов
При помощи команды touch можно создавать больше одного файла. Например, следующая команда создаст три файла – file1, file2 и file 3:
Также можно указывать диапазон, например:
Изменение времени доступа и модификации
Для изменения или обновления времени последнего доступа и модификации файла используются опции «-a» и «-m». Первая из них изменяет время доступа, и если в явном виде не указана вторая, время модификации остается неизменным. Следующая команда устанавливает текущее время доступа к файлу file1. Если файл не существует, будет создан новый пустой файл с таким именем:
Временные метки используются для сортировки и поиска файлов такими популярными командами Linux, как find и ls.
Запрет создания нового файла
Опция «-c» запрещает команде touch создавать новый файл. Например, следующая команда не будет создавать файл file4, если его не существует:
Установка заданного времени доступа и модификации
При помощи опций «-c» и «-t» можно задать время в явном виде. Формат команды следующий:
ВВ – первые две цифры года
ГГ – последние две цифры года.
Значения «ВВ» и» ГГ» можно не указывать: если «ГГ» в диапазоне 69-99, то «ВВ» автоматически устанавливается в 19, для «ГГ» 00-38 значение «ВВ» устанавливается в 20. Если не указать год вообще, то устанавливается текущий год. «ГГ» от 39 до 68 приводит к ошибке.
ММ – месяц (01-12)
ДД – день (01-31)
чч – час (00-23)
мм – минута (00-59)
сс – секунда (00-59), не обязательно
Например, следующая команда устанавливает дату и время доступа и модификации файла file1 в 10:26 16 января текущего года (2019):
Вместо опции «–t» можно использовать опцию «–d», которая позволяет задать дату и время в виде строки в более удобном и читаемом человеком формате, например:
Так как время и год не указаны, данная команда устанавливает дату 14 марта текущего года, а время – 00:00.
Использование временных меток другого файла
Команда touch с опцией «-r» позволяет задать файлу временные метки другого файла. Например, следующая команда установит для файла file2 временные метки file1. Таким образом, временные метки обоих файлов будут одинаковыми:
Создание файла с заданным временем
Опцию «-t» можно использовать для создания пустого файла с заданной временной меткой. Обратите внимание на отсутствие опции «-с»:
Приведенная команда создает файл с именем file5 и временной меткой 18:30:55 10 декабря 2018 года.
Заключение
Команда touch очень простая, и мы рассмотрели практически все ее опции. Однако, в разных версиях операционных систем ее работа может немного отличаться. Уточнить детали всегда можно на соответствующей man-странице.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Команда touch в Linux
Команда touch позволяет обновлять временные метки в существующих файлах и каталогах, а также создавать новые пустые файлы.
В этом руководстве мы покажем вам, как использовать сенсорную команду, на практических примерах и подробных объяснениях наиболее распространенных параметров команд.
Метки времени файлов Linux
Прежде чем перейти к использованию сенсорной команды, давайте начнем с обзора временных меток файлов в Linux.
Файл в Linux имеет три отметки времени:
Для создания нового файла требуются права на запись в родительский каталог. В противном случае вы получите сообщение об ошибке в разрешении отказано.
Как использовать сенсорную команду
В простейшей форме при использовании без каких-либо опций, если имя файла, указанное в качестве аргумента, не существует, touch создаст новый файл.
Если файл уже существует, коснитесь, чтобы изменить время последнего доступа и модификации файла на текущее время.
Например, если файл file1 не существует, следующая команда создаст его, иначе она изменит его временные метки:
Чтобы создать или изменить несколько файлов одновременно, укажите имена файлов в качестве аргументов:
Например, если существует файл file1 следующая команда изменит временные метки файла, в противном случае она ничего не сделает:
Изменение только времени доступа или модификации
Меняем только время доступа
Измените только время изменения
При изменении времени изменения время изменения также будет обновлено.
Установка конкретных отметок времени
Сенсорная команда также позволяет нам обновлять или создавать файл с определенным временем, отличным от текущего времени.
Например, чтобы изменить время последнего доступа и модификации file1 на 1 июня 2018 11:02, вы должны использовать следующую команду:
Строку даты необходимо заключить в одинарные кавычки.
Вы также можете указать частичную строку даты и времени для сенсорной команды. Предоставляя только дату, автоматически меняет год на текущий:
Например, следующая команда установит время последнего доступа и модификации file1 на 1 июня 11:02 текущего года.
Использование метки времени другого файла
Например, следующая команда скажет touch использовать время file1 для file2 :
Изменение метки времени символической ссылки
По умолчанию, если вы используете сенсорную команду для символической ссылки, она изменяет временные метки файла, на который она указывает.
Например, чтобы изменить временные метки символической ссылки symlink1 вы должны использовать:
Выводы
К настоящему времени вы должны хорошо понимать, как использовать сенсорную команду Linux.
15 полезных примеров использования команды touch в Linux системах
Практическое использование команды touch для пользователей Linux
Приведенные ниже примеры помогут вам получить полное представление о команде. Однако, вы должны попробовать использовать эти команды сами, если хотите освоить этот инструмент в целом. Итак, запустите ваш терминал Linux и начните выполнять команды, приведенные ниже, по мере того, как вы о них будете читать.
1. Создание пустого файла
При самом простом использовании touch создает простой файл, который ничего не содержит. Он очень полезен в ряде ситуаций, например, когда вы экспериментируете с файловыми операциями или какими-либо другими командами терминала. Для этого просто передайте имя файла после команды touch.
Так в текущей рабочей директории создается простой пустой файл, который называется test. Вы можете проверить это с помощью команды ls. Вы также можете использовать команду touch для создания пустого файла в любой другой директории, просто передав правильный путь перед именем файла.
2. Создание нескольких пустых файлов
С помощью данной команды можно также создавать несколько файлов одновременно из одного терминала. Все, что вам нужно сделать, это передать все имена файлов, которые вы хотите создать один за другим. Взгляните на приведенную ниже команду, чтобы увидеть, как это работает.
Вышеуказанная команда сделает ту же работу, но гораздо более аккуратным способом.
3. Создание и заполнение файла
В приведенном ниже примере показано, как создать простой файл с помощью сенсорного ввода и заполнить его некоторым содержимым. Для этой цели мы используем команду seq в Linux. Но вы можете прибегнуть и к другим методам, если хотите.
Теперь тестовый файл не пустой, а содержит числа от 1 до 10. Вы можете проверить это с помощью команды Linux cat.
4. Повторение метки времени последнего доступа к файлу
Вы можете проверить это с помощью команды ls. Вы должны увидеть, что файл new имеет временную метку, более раннюю, чем текущее время, и такую же, как и файл test. Для этого ключа также существует длинная форма, называемая -reference.
5. Изменение метки времени последнего доступа к файлу
Администраторы Linux часто используют команду для изменения метки времени последнего доступа к файлам, созданным ранее. Следующая команда показывает нам, как это сделать. Для этого нам нужно использовать ключ -a. Сначала проверьте метку времени файла test, используя нижеприведенную команду.
Теперь воспользуйтесь ключом -a, чтобы изменить эту метку времени с помощью команды touch. Обратите внимание, что ключ -time=atime из ls показывает нам время доступа к файлу.
Теперь, если вы еще раз проверите временную метку файла test, вы заметите, как она изменилась после выполнения вышеуказанной команды. Это один из наиболее распространенных видов использования в Linux.
6. Изменение метки времени последнего изменения файла
Вы также можете изменить время последнего изменения файла в Linux с помощью этой команды. Для этого необходимо использовать ключ -m. Внимательно посмотрите на пример ниже, чтобы увидеть, как это работает.
Во-первых, мы просмотрели последнее время последнего изменения файла test с использованием команды ls. Затем мы использовали ключ -m вместе с командой touch, чтобы изменить это значение на текущее время. Проверить это можно, выполнив еще раз команду ls.
7. Изменение даты и времени на текущее время
Вы можете использовать ключи -a и -m вместе для изменения как метки времени последнего доступа к файлу, так и времени последнего изменения файла в Linux. Для демонстрации этого необходимо использовать старый файл. Вы можете просто запустить приведенную ниже команду для одного такого файла, чтобы посмотреть, работает ли это так, как ожидалось или нет.
Вы можете просмотреть всю информацию о времени, относящуюся к старому файлу, с помощью команды stat. Она покажет время последнего доступа, время последнего изменения и время последнего изменения атрибутов вашего файла. Теперь используйте следующую команду для изменения даты и времени на текущие.
Проверьте изменение даты и времени еще раз с помощью команды stat.
8. Пропустить создание файла
Ключ -c или -no-create позволяет пропустить создание файла. Хотя вы можете считать это непродуктивным, но многие пользователи используют этот ключ для проверки существования файла.
При выполнении вышеописанных команд в Вашей рабочей директории не произойдет никаких изменений. Вы можете запустить команду ls еще раз, чтобы проверить это.
9. Изменение даты файла
10. Измение даты и времени на пользовательские значения
Ключ -t позволяет нам изменять как дату, так и время файла на персонализированные значения. Таким образом, мы можем изменить несколько параметров, включая год, месяц, дату, час, минуты и секунды. Внимательно посмотрите на следующий пример, чтобы понять, как это работает.
Теперь снова запустите команду ls, чтобы проверить параметры даты и времени. Аргумент к ключу -t должен быть в формате YYMMDDhhmm. Так как мы установили значения, которые будут в будущем, команда ls не сможет показать параметр времени.
11. Изменение даты с помощью слова
Также можно изменять дату файла в формате слов, например, «yesterday» с помощью команды touch. Для этого просто передайте аргумент ввиде строки к ключу -date. Команда ниже показывает, как изменить дату файла на предыдущий день.
Используйте следующую команду для изменения даты на следующий день.
Проверьте даты с помощью команды ls и убедитесь, что они работают, как ожидалось.
12. Копирование метки времени последнего доступа к файлу для символьных ссылок
Ключ -h или -no-dereference позволяет пользователям копировать время последнего доступа к файлу по символическим ссылкам. Однако, этот ключ будет работать только на системах, которые позволяют изменять время символических ссылок.
Эта команда не работает во многих дистрибутивах Linux из-за различных проблем с безопасностью.
13. Просмотр справочной информации
Страница справки содержит сводную информацию обо всех возможных вариантах команды. Это очень полезно, так как пользователи могут просто взглянуть на эту страницу и вспомнить, что должен делать тот или иной вариант команды.
Данная команда покажет страницу справки для linux-команды touch в вашем терминале. Это избавит Вас от необходимости запоминать использование каждого ключа.
14. Просмотр мануала по команде touch
Страница man или руководство содержит подробную информацию обо всех доступных вариантах команд терминала Linux. Вы можете просмотреть эту страницу в любое время, выполнив следующую простую команду.
Она покажет вам подробную документацию о том, как работать с командой touch в Linux системах. Обращайтесь к этой документации всякий раз, когда у вас возникнет путаница в отношении использования ключей.
15. Просмотр информации о версии
Вы можете просмотреть, какая версия команды touch установлена в вашей системе, с помощью приведенной ниже команды. Она поможет вам определить различную информацию об установленном пакете.