Это пятое видео о написании скриптов в коммандной оболочке – bash scripting.
Команда touch служит для изменения данных о последней дате и времени пользования файлом (какая-либо дата меняется на текущую). Иногда полезно использовать в скриптах и отслеживать состояние какого-либо файла и тп.
Также можно создавать пустые файлы, если не указывать ключь ” -c “.
~$ touch testfile
touch – change file timestamps
SYNOPSIS touch [OPTION]… FILE…
DESCRIPTION
Update the access and modification times of each FILE to the current time.
A FILE argument that does not exist is created empty, unless -c or -h is supplied.
A FILE argument string of – is handled specially and causes touch to change the times of the file associated with standard output.
Mandatory arguments to long options are mandatory for short options too.
В моей текущей директории есть только созданный мной файл testfile:
~$ ls -lh
-rw-rw-r-- 1 alexander alexander 0 Nov 5 16:33 testfile
Я хочу переименовать файл testfile в newtestfile. Это можно сделать с помощью команды mv.
Команда mv служит для переноса файла из одного места в другое, также для переименования имени файла.
~$ mv testfile newtestfile
~$ ls -lh
-rw-rw-r-- 1 alexander alexander 0 Nov 5 16:33 newtestfile
Это также работает для переименования и переноса директорий.
mv – move (rename) files
Удаление файлов.
Удалить файл можно с помощью команды rm
~$ ls -lh
total 0
-rw-rw-r-- 1 alexander alexander 0 Nov 5 17:01 newtestfile
~$ rm newtestfile
~t$ ls -lh
total 0
~$
Создание директорий.
Как я уже писал создать директорию можно командой mkdir.
~$ ls -lh
total 0
~$ mkdir dirtest
~$ ls -lh
total 4.0K
drwxrwxr-x 2 alexander alexander 4.0K Nov 5 17:15 dirtest
Удалить директорию просто с помощью команды rm не получится:
~$ rm dirtest/
rm: cannot remove ‘dirtest/’: Is a directory
нужно использовать ключь -r (remove directories and their contents recursively). В директории будет удалён весь контент и с этим нужно быть аккуратным!
~$ rm -r dirtest/
~$ ls -lh
total 0
~$
Можно воспользоваться также командой rmdir для удаления директории, но если в директории есть какие-либо файлы, то будет выдана ошибка о невозможности удаления и нужно будет воспользоваться командой “rm -r filename”.
~$ ls -lh
total 4.0K
drwxrwxr-x 2 alexander alexander 4.0K Nov 5 17:24 dirtest
~$ ls -lh dirtest/
total 0
-rw-rw-r-- 1 alexander alexander 0 Nov 5 17:24 testfile
~$ rmdir dirtest/
rmdir: failed to remove ‘dirtest/’: Directory not empty
~$ rm -r dirtest/
~$ ls -lh
total 0
~$