Некоторые пользователи Linux могут столкнуться с проблемой усечения файлов. Усечение означает удаление или очистку содержимого любого файла, даже не открывая его или не удаляя конкретный файл. Используя усечение, вы можете удалить содержимое файла до нуля. Существует множество простых команд для усечения файлов из терминала, вместо того чтобы делать это непосредственно из каталога.
Использование команды перенаправления
Чтобы усечь файл "filename" с помощью перенаправления оболочки, используйте следующую команду:
1 | > filename |
Теперь откройте файл "filename" из своего домашнего каталога. Файл пуст.
С другой стороны, эта команда может создать новый пустой файл.
Использование команды True
Чтобы усечь файл "filename" с помощью команды "true", используйте следующую следующую команду:
1 | true > filename |
Созданный файл "filename" теперь пуст.
Использование команды "echo"
Вы также можете очистить файл с помощью команды "echo". Используйте уже созданный файл "filename" с некоторыми изменениями в его сценарии bash, как показано ниже.
Усеките файл с помощью команды "echo", за которой следует "-n" и имя файла. Вы увидите, что команда bash ничего не выводит при повторном выполнении после команды "echo".
1 | echo -n > filename |
Или
1 | echo "" > filename |
Или
1 | echo > filename |
Теперь файл не имеет содержимого.
Использование команды Cat/Cp
Вы можете использовать ту же команду bash для выполнения файла и проверки результата. Теперь выполните команду "cat" для удаления текста из файла следующим образом:
1 | cat /dev/null > filename |
Так же можно использовать команду "cp" вместо "cat" для усечения файла.
1 | cp /dev/null filename |
Помните, что в команде "cp" не нужно использовать знак ">", как это делается в команде "cat".
При проверке в файле не будет текста.
Использование команды dd
Чтобы усечь файл "filename" с помощью команды "dd", используйте следующую следующую команду:
1 | dd if=/dev/null of=filename |
Файл "filename" усечен.
Использование команды Sudo
Другой способ сделать текстовый файл нулевым - это использование команды sudo, с помощью файла "filename", здесь опять же с небольшими отличиями в сценарии, как показано ниже.
После этого используйте команду "sudo", чтобы сделать этот файл пустым.
1 | sudo sh -c '> filename' |
После этого откройте файл "filename". В файле не будет никакого текста, как показано на рисунке.
Другой способ использования команды "sudo" для того, чтобы сделать файл нулевым, - это использование ее вместе с ключевым словом "tee". Поэтому снова используйте файл "fill.sh" с тем же содержимым.
Теперь используйте команду "sudo" с последующим ключевым словом "tee" следующим образом:
1 | : | sudo tee filename |
После этого команда bash будет использоваться для проверки нулевого вывода.
Файл будет пустым после использования этой команды "sudo".
Использование команды Truncate
Другим способом удаления содержимого файла является использование команды "truncate". Здесь снова использован файл "filename" с тем же текстовым сценарием.
При выполнении команды bash результат будет таким же, как на рисунке. После этого мы используем команду "truncate", за которой следует ключевое слово "-s". За ключевым словом "-s" следует число "0", что означает, что этот файл будет усечен до нулевого содержимого. Теперь вы получите нулевой вывод после выполнения команды bash.
1 | truncate -s 0 filename |
Для удаления содержимого более чем одного файла существует однострочная команда. Для этого достаточно указать путь к каталогу, за которым следует тип или расширение файла, например, ".sh" или ".log". Сейчас в домашнем каталоге у нас три файла с расширением ".sh".
Вы можете удалить содержимое несколькиз файлов, выполнив одно быстрое действие, используя команду "truncate", за которой следует расположение каталога и расширения файлов.
1 | sudo truncate -s 0 /home/**/*.log |
После этого, проверяя, вы увидите, что в них больше нет содержимого.