1

Я должен удалить файлы вчера, я делаю что-то вроде этого

ls -l | grep 'Feb 15'|awk| xargs

Я не могу использовать awk, поскольку в именах моих файлов есть пробелы, поэтому я не могу разделить их в выводе ls -l.

Кто-нибудь может мне с этим помочь?

2 ответа2

2

сначала сделать:


find /path/to/search/ -type f -mtime 1

чтобы убедиться, что вы видите правильные результаты -mtime n означает n * 24 часа назад, затем используйте -print0 для обхода пробелов


find /path/to/search/ -type f -mtime 1 -print0

потом убрать добавь трубу в xargs


find /path/to/search/ -type f -mtime 1 -print0 |xargs -0 rm

0

Я основываю свой ответ на том факте, что у вас проблемы с обработкой имен файлов с пробелами в них.

У меня есть приложение для Linux, которое имеет дело с файлами, имена которых содержат встроенные пробелы. Ниже приведены выдержки из моего сценария оболочки bash, которые позволяют мне использовать цикл for, чтобы найти два файла и что-то с ними сделать.

В моем случае это было передать их программе Clojure, которая определяла, какие файлы были основаны на сигнатурах столбцов. Оба файла являются файлами .csv. Денежный выстрел меняет IFS, а затем восстанавливает его первоначальную стоимость, когда вы закончите. Это позволяет $ fnam содержать имя файла, если в нем есть пробелы.

# $IFS is internal file separator.
# The following little code snippet takes into account space-separated files.
# We set the file separator value to something other than space.

ORIGINAL_IFS=$IFS
IFS=$(echo -en "\n\b")

# You have to fond both types of files .CSV or .csv. 
#This is the way to do it. cmn 11/1/2012

for fnam in `find bene_gic_in -maxdepth 1 \
-type f \( -name \*.csv -o -name \*.CSV \) \
-exec echo "{}" \;`
do

# Please note that $fnam may have embedded spaces in it, at this point, 
# you could check # for the name, and make a decision about what to do 
# with it, like 
# 

if [ "$fnam" = "a file name i expect" ]; then
# do something.
   mv $fnam file_type1
fi

.
.
.
# Bring back original line separator value.
IFS=$ORIGINAL_IFS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .