Linux создать папку с текущей датой

Как создавать папки по дате в Linux?

Есть ли другой короткий / более простой и умный способ сделать следующее в Linux?

Мне нужно использовать crontab для создания папок каждый день и каждый месяц внутри /home /abcd /dammi, /home /abcd /harrami, /home /wxyz /dammi и /home /wxyz /harrami. Кто-нибудь может мне с этим помочь?

2 ответа 2

Как насчет следующего:

Ну, конечно, вы также можете сделать это без переменных DATE_DIR и DAY_DIR но этот алгоритм гарантирует, что дата не генерируется много раз, что быстрее, и гарантирует, что дата будет одинаковой для всех пользователей (даже если вы запустите ее до полуночи и последний каталог создается после полуночи).

Возможно, вам также придется подумать об улучшении сценария с помощью chown, чтобы пользователи могли писать во вновь созданные каталоги.

Редактировать: Если вы хотите создать одинаковую структуру папок в двух подпапках /home вы можете объединить скрипт RolKau с моим:

Edit2: я предполагаю, что список пользователей содержит имена пользователей. Итак, давайте расширим скрипт, чтобы правильно изменить владельца каталога:

Edit3: чтобы сменить владельца, я думаю, что самый простой способ — это прочитать владельца из каталога в /home/ /

Конечно, вы можете использовать stat, чтобы прочитать владельца; но это немного медленнее, чем просто чтение из переменной — как вы и просили:

Edit4: альтернативное решение, использующее жестко закодированное членство в группе.

Edit5: глядя на ваш первоначальный пост, желаемая структура может немного отличаться. Я предполагаю, что вы хотите иметь подкаталог в /home для каждой группы и добавлять только пользовательские каталоги для каждого члена группы. Итак, поехали:

Если пользователь является членом нескольких групп, просто укажите его несколько раз в USER_LIST.

Источник

⏱️ Как создать каталоги или файлы с именами на текущую дату/время/месяц/год на Linux

Показанные далее команды создадут каталоги или файлы с именами с текущей датой или временем на основе часов вашего компьютера.

Создание каталогов или файлов с именами текущей даты / времени / месяца / года на Linux

Чтобы создать каталог и назвать его текущей датой, просто запустите:

Эта команда создаст каталог и назовет его сегодняшней датой в формате dd: mm: yyyy.

Создание каталогов или файлов с произвольным именем с текущей датой

Как насчет пользовательского имени для каталога или файла с датой / временем / месяцем / годом?

Это также возможно.

Создание каталогов файлов в формате ISO

Если вы хотите использовать формат даты ISO (например, 2020-06-06), запустите:

Все вышеперечисленные три команды дают одинаковый результат.

Для создания файлов просто замените mkdir командой «touch».

Больше примеров

Если вы хотите только день текущей даты, используйте:

Читайте также:  Vpn psiphon pro для windows

Эта команда создаст каталог только с текущим днем в имени. т.е. 06.

Точно так же вы можете создавать каталоги с именем текущего месяца только в имени:

Обратите внимение что S – заглавная

Чтобы назвать каталог с текущими минутами, используйте заглавную M:

Во всех приведенных выше примерах мы создали каталоги с номерами на их именах.

Что если вы хотите назвать каталоги с фактическим названием текущего дня / месяца, например, Saturday, October и т. д.?

Добавить комментарий Отменить ответ

• Свежие записи

• Категории

• itsecforu.ru

• Страны посетителей

IT is good

Источник

Linux создать папку с текущей датой

Приветствую всех.
Возникла необходимость изменить ctime папки, но вот никак не могу сообразить где и как это можно сделать. Подскажите, люди, кто может 🙂
Система Linux.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

  • Изменить время создания папки, tux2002, 12:40 , 31-Окт-08, ( 1 )
    • Изменить время создания папки, Junior, 12:49 , 31-Окт-08, ( 3 )
    • время ?? папки, Andrey Mitrofanov, 12:54 , 31-Окт-08, ( 4 )
      • время ?? папки, tux2002, 13:22 , 31-Окт-08, ( 6 )
  • Изменить время создания папки, Gennadi, 12:48 , 31-Окт-08, ( 2 )
    • Изменить время создания папки, Junior, 12:58 , 31-Окт-08, ( 5 )

Сообщения по теме [Сортировка по времени | RSS]

>Приветствую всех.
>Возникла необходимость изменить ctime папки, но вот никак не могу сообразить где
>и как это можно сделать. Подскажите, люди, кто может 🙂
>Система Linux.

Можно тронуть (touch) в текущую дату.

1 . «Изменить время создания папки»
Сообщение от tux2002 on 31-Окт-08, 12:40
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3 . «Изменить время создания папки»
Сообщение от Junior (ok) on 31-Окт-08, 12:49

>>Приветствую всех.
>>Возникла необходимость изменить ctime папки, но вот никак не могу сообразить где
>>и как это можно сделать. Подскажите, люди, кто может 🙂
>>Система Linux.
>
>Можно тронуть (touch) в текущую дату.

Спасибо огромное!
То, что нужно, совсем забыл об этой команде.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4 . «время ?? папки»
Сообщение от Andrey Mitrofanov on 31-Окт-08, 12:54

>>Возникла необходимость изменить ctime папки
>Можно тронуть (touch) в текущую дату.

А можно и не текущую:

$ touch -m -d «15 minutes ago» $NAME

Вроде, так. На директориях, вроде, работало тоже.

Только вот про время _создания_ — не уверен.

Time of last access/modification/change есть, про «создание» — тишина

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6 . «время ?? папки»
Сообщение от tux2002 on 31-Окт-08, 13:22

>[оверквотинг удален]
>
>А можно и не текущую:
>
>$ touch -m -d «15 minutes ago» $NAME
>
>Вроде, так. На директориях, вроде, работало тоже.
>
>Только вот про время _создания_ — не уверен.
>
>Time of last access/modification/change есть, про «создание» — тишина

А я что-то и не заморачивался, буду знать 🙂

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2 . «Изменить время создания папки»
Сообщение от Gennadi (??) on 31-Окт-08, 12:48

>Приветствую всех.
>Возникла необходимость изменить ctime папки, но вот никак не могу сообразить где
>и как это можно сделать. Подскажите, люди, кто может 🙂
>Система Linux.

ls -lisa test
total 0
629797 0 drwxr-xr-x 2 root root 48 Oct 31 10:45 .
622485 0 drwxr-xr-x 4 root root 96 Oct 31 10:45 ..

touch -t 0710031305 test

ls -lisa test
total 0
629797 0 drwxr-xr-x 2 root root 48 Oct 3 2007 .
622485 0 drwxr-xr-x 4 root root 96 Oct 31 10:45 ..

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5 . «Изменить время создания папки»
Сообщение от Junior (ok) on 31-Окт-08, 12:58

>[оверквотинг удален]
>629797 0 drwxr-xr-x 2 root root 48 Oct 31 10:45 .
>622485 0 drwxr-xr-x 4 root root 96 Oct 31 10:45 ..
>
>touch -t 0710031305 test
>
>ls -lisa test
>total 0
>629797 0 drwxr-xr-x 2 root root 48 Oct 3 2007
>.
>622485 0 drwxr-xr-x 4 root root 96 Oct 31 10:45 ..

Да, спасибо. Практически так же.

# mkdir test
# ls -la | grep test
drwxr-xr-x 2 root root 4096 Oct 31 12:54 test
# touch —date=»2002-05-21 15:02:17.000000000 +0400″ test
# ls -la | grep test
drwxr-xr-x 2 root root 4096 May 21 2002 test

Источник

Работа с файлами и каталогами в командной оболочке Bash

Содержание:

Bash (Bourne Again Shell) — это командная оболочка, использующаяся в таких UNIX-системах, как Linux или MacOS. Она позволяет управлять компонентами ОС с помощью определённых запросов, которые вводятся в консоль или берутся из скрипта.

Как новичкам, так и опытным пользователям будет полезно узнать или вспомнить основные команды Bash для управления такими важными аспектами системы, как файлы и каталоги. Этот вопрос будет разобран на примере ОС Linux.

Работа с файлами и каталогами

Работа с файлами и каталогами в Linux через Bash осуществляется с учетом иерархического принципа их классификации. Иерархическая структура файловой системы Linux напоминает «дерево». Существует корневой каталог, который является начальным для всей ОС, а в нём, соответственно, масса других подкаталогов.

Такой же принцип используется для командной строки. Файлы и каталоги берут начало из корневого узла « / », который является начальной точкой для всех элементов.

Ниже представлен стандартный перечень подкаталогов, встречающийся в большинстве UNIX-систем.

Каталог Содержимое
/bin Бинарные версии файлов (в том числе для командной оболочки).
/dev Псевдофайлы, представляющие собой аппаратные средства, подключённые к устройству.
/etc Большая часть конфигурационных файлов.
/lib Библиотеки для системных приложений.
/opt Необязательные компоненты системы или приложения.
/tmp Временные файлы.
/usr Пользовательские компоненты.
/var Файлы приложений (в том числе системные журналы, кэши и т. д.).

Команды для каталогов

Существуют конкретные команды, предназначенные для работы с каталогами. Далее будут приведены самые важные из них.

Список основных команд

  • pwd — вывод полного пути к текущему каталогу.
  • cd — переход с текущего каталога на домашний пользовательский.
  • cd dirname — перейти в папку «dirname».
  • cd / — переход по директориям относительно корневого каталога.
  • ls — просмотреть список файлов в каталоге.
  • ls -d */ — просмотреть список папок в текущем каталоге.
  • ls dirname — вывод содержимого каталога «dirname» на экран.
  • mkdir dirname — создать папку с наименованием «dirname».
  • rmdir dirname — удалить папку «dirname».
  • rm -rf dirname — удалить папку «dirname» с её содержимым (опция -r) без предупреждения пользователя (опция -f).
  • du -h dirname — размер папки «dirname».

Помимо этого, существуют полезные сокращения. Например, текущая директория обозначается с помощью « . ». Знак « .. » позволяет задействовать родительский каталог. Для представления домашней директории используется «

Пример использования сокращений:

Команды для файлов

Далее приведены основные команды для осуществления взаимодействия с файлами. Начинающим полезно опробовать каждую из них, чтобы лучше понять принцип работы утилит.

Список основных команд

  • touchfile — создать файл.
  • realpath file — узнать абсолютный путь к файлу.
  • stat file1 — получение информации о «file1» (размер файла, дата создания файла и т. д.) и проверка существования файла.
  • cat > file — запись в файл.
  • catfile — чтение файла.
  • echo текст >> file — дописать в файл текст.
  • find file — поиск файла.
  • mcedit file — редактирование файла (также можно использовать редакторы Nano, Vim и другие).
  • cat file1 file2 > file12 — объединение файлов.
  • sh filename — запустить файл со сценарием Bash.
  • ./filename — запустить исполняемый файл.
  • cp file1 file2 — копировать файл «file1» с переименованием на «file2». Произойдёт замена файлов, если элемент с таким же названием существует.
  • mv file1 file2 — переименовать файл «file1» в «file2».
  • mv filename dirname — переместить файл «filename» в каталог «dirname».
  • less filename — открыть файл в окне терминала.
  • file filename — определение типа файла.
  • head filename — вывод нескольких начальных строк из файла на экран (построчное чтение файла). По умолчанию строк 10.
  • tail filename — вывод нескольких конечных строк из файла на экран.
  • diff file1 file2 — сравнение файлов.
  • grep text filename — поиск и вывод строк из файла, содержащих «text».
  • rm filename — удалить файл.

Подробную информацию об утилитах можно получить, воспользовавшись справочной службой: « man ».

Пример получения справки по работе с программой rm: « man rm ».

Перенаправление данных

Перенаправление ввода-вывода в файл осуществляется с помощью специальных знаков. Для вывода используются « > » и « >> », а для ввода — « ».

Пример вывода « ls » в файл, а не на экран:

Новый файл создаётся автоматически. В случае существования элемента с таким же наименованием, произойдёт перезапись. Чтобы этого избежать, необходимо использовать « >> ». Тогда данные будут дописываться в документ.

Пример ввода, при котором информация выносится из файла с помощью команды « sort »:

Генерация имён файлов в Bash

Иногда пользователю приходится работать с несколькими файлами одновременно, например, при выполнении переноса документов в другой каталог. Это станет проблемой, если элементов десятки или сотни и среди них нужно отобрать определённые.

Для решения поставленной задачи можно попробовать использование шаблонного выражения, позволяющего Bash определить необходимые элементы, ориентируясь по наименованию. Этот способ упрощает управление группой файлов путём применения короткой формулировки в команде.

Итак, теперь остаётся разобраться с вопросом составления шаблонов. Сейчас будут приведены основные конструкции для осуществления генерации имён. Чаще всего для отбора файлов применяется символ: « * ». В случае использования этого знака в чистом виде, Bash выберет все элементы в каталоге без исключений.

Для примера, чтобы из этого каталога отобрать файлы: file1, file2, file3, следует воспользоваться шаблоном:

Символ звёздочки позволяет командному интерпретатору выделить все файлы, начинающиеся с «file». При этом последующая часть наименования будет проигнорирована.

Знак « * » можно использовать также в начале или с обеих сторон шаблона.

Кроме того, сгенерировать имена можно, взяв за основу расширение файла. Например:

Начни экономить на хостинге сейчас — 14 дней бесплатно!

Источник

Читайте также:  Windows 10 как отключить геолокацию
Оцените статью