У меня есть базовая папка (назовем ее базовой).
У меня внутри куча папок, разбросанных по разным глубинам внутри этих папок, это кеш-папки.
Я хочу удалить все файлы из папок кеша, но не сами папки.
Я пробовал
cd base
#then one of...
sudo rm -rf cache/*
sudo rm -rf *cache/*
sudo rm -rf cache*/*
sudo rm -rf *cache*/*
Но на самом деле я только догадываюсь, какой будет правильная команда?
В bash вы можете включить globstar и использовать **
для рекурсивного сопоставления каталогов
shopt -s globstar
echo rm -rf ./**/*cache*/*
В bash вы можете включить globstar и использовать **
для рекурсивного сопоставления каталогов
shopt -s globstar
echo rm -rf ./**/*cache*/*
В bash вы можете включить globstar и использовать **
для рекурсивного сопоставления каталогов
shopt -s globstar
echo rm -rf ./**/*cache*/*
В bash вы можете включить globstar и использовать **
для рекурсивного сопоставления каталогов
shopt -s globstar
echo rm -rf ./**/*cache*/*
В bash вы можете включить globstar и использовать **
для рекурсивного сопоставления каталогов
shopt -s globstar
echo rm -rf ./**/*cache*/*
В bash вы можете включить globstar и использовать **
для рекурсивного сопоставления каталогов
shopt -s globstar
echo rm -rf ./**/*cache*/*
В bash вы можете включить globstar и использовать **
для рекурсивного сопоставления каталогов
shopt -s globstar
echo rm -rf ./**/*cache*/*
Это будет рекурсивно удалять все файлы в папках с именем cache, начиная с папки base. Сами папки cache по-прежнему будут неповрежденными, но все файлы в каждом из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Вы можете использовать чрезвычайно мощную команду find.
Я бы использовал что-то вроде этого:
find . -iname *cache* -ok rm -rf {} \;
Теперь позвольте мне объяснить это вам. Найти это имя приложения, у него много вариантов, но для вас вам не понадобится много.
. означает просмотр в этом текущем каталоге. Это означает, что вам нужно будет в правильном каталоге, чтобы начать с. Я полагаю, что для вас это ~
-iname означает поиск моего нечувствительного к регистру имени.
*cache* означает, что имя должно содержать кеш.
[d7 ] Теперь важна следующая часть.-ok означает выполнение следующих команд, но как меня, если я хочу сделать это в первую очередь. Это можно заменить на -exec, но я бы не советовал.
Хорошо, так что следующая строка (это то, что работает -ok), это rm -rf {} \;
[F10] Надеюсь, я сам объясню. [F11] в основном является заполнителем имени файла, который он нашел. [[12] в конце просто означает, что это конец этой строки.
Надеюсь, что это имеет смысл.
Я советую запустить команду find без права и в том числе [ f13]. Сначала он выкачивает список всех файлов кеша, и вы сможете их просмотреть. Затем добавьте раздел -ok и взломайте!
Просто замените baseir на путь базового каталога, который вы хотите удалить.
$ find basedir -type f -delete
Если вы чувствуете себя более комфортно, перемещаясь ранее в ваш базовый каталог, тогда:
$ cd basedir
$ find . -type f -delete
Это рекурсивно удалит все файлы в папках с именем cache
, начиная с папки base
. Сами папки cache
по-прежнему не повреждены, но все файлы в каждой из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Просто замените basedir на путь к базовому каталогу, который вы хотите удалить
$ find basedir -type f -delete
Если вам удобнее переходить ранее к вашему базовому каталогу, то:
$ cd basedir
$ find . -type f -delete
Вы можете использовать чрезвычайно мощную команду поиска .
Я бы использовал что-то вроде этого:
find . -iname *cache* -ok rm -rf {} \;
Теперь позвольте мне объяснить это для вас , Find - это имя приложения, у него много опций, но вам не нужно много из них.
.
означает поиск в этом текущем каталоге. Это означает, что вы должны быть в правильном каталоге, чтобы начать с. Я предполагаю, что для вас ~
-iname
означает поиск в моем имени без учета регистра.
*cache*
означает, что имя должно содержать кеш.
Теперь важна следующая часть.
-ok
означает выполнять команды, которые следуют, но как я, если я хочу сделать это первым. Это можно заменить на -exec
, но я бы не советовал. Это могло бы удалить вещи, не сказав вам об этом, и вы этого не хотите.
Хорошо, поэтому следующая строка (это материал, который запускает -ok
): rm -rf {} \;
Надеюсь, rm -rf
говорит само за себя. {}
в основном является заполнителем для имени файла, который он нашел. \;
в конце означает, что это конец этой строки.
Надеюсь, это имеет смысл.
Я советую запускать команду find без всякого права, включая -ok
. Сначала он выкачает список всех файлов кэша, и вы можете просмотреть их. Затем добавьте раздел -ok
и получите взлом!
Это рекурсивно удалит все файлы в папках с именем cache
, начиная с папки base
. Сами папки cache
по-прежнему не повреждены, но все файлы в каждой из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Просто замените basedir на путь к базовому каталогу, который вы хотите удалить
$ find basedir -type f -delete
Если вам удобнее переходить ранее к вашему базовому каталогу, то:
$ cd basedir
$ find . -type f -delete
Вы можете использовать чрезвычайно мощную команду поиска .
Я бы использовал что-то вроде этого:
find . -iname *cache* -ok rm -rf {} \;
Теперь позвольте мне объяснить это для вас , Find - это имя приложения, у него много опций, но вам не нужно много из них.
.
означает поиск в этом текущем каталоге. Это означает, что вы должны быть в правильном каталоге, чтобы начать с. Я предполагаю, что для вас ~
-iname
означает поиск в моем имени без учета регистра.
*cache*
означает, что имя должно содержать кеш.
Теперь важна следующая часть.
-ok
означает выполнять команды, которые следуют, но как я, если я хочу сделать это первым. Это можно заменить на -exec
, но я бы не советовал. Это могло бы удалить вещи, не сказав вам об этом, и вы этого не хотите.
Хорошо, поэтому следующая строка (это материал, который запускает -ok
): rm -rf {} \;
Надеюсь, rm -rf
говорит само за себя. {}
в основном является заполнителем для имени файла, который он нашел. \;
в конце означает, что это конец этой строки.
Надеюсь, это имеет смысл.
Я советую запускать команду find без всякого права, включая -ok
. Сначала он выкачает список всех файлов кэша, и вы можете просмотреть их. Затем добавьте раздел -ok
и получите взлом!
Это рекурсивно удалит все файлы в папках с именем cache
, начиная с папки base
. Сами папки cache
по-прежнему не повреждены, но все файлы в каждой из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Просто замените basedir на путь к базовому каталогу, который вы хотите удалить
$ find basedir -type f -delete
Если вам удобнее переходить ранее к вашему базовому каталогу, то:
$ cd basedir
$ find . -type f -delete
Вы можете использовать чрезвычайно мощную команду поиска .
Я бы использовал что-то вроде этого:
find . -iname *cache* -ok rm -rf {} \;
Теперь позвольте мне объяснить это для вас , Find - это имя приложения, у него много опций, но вам не нужно много из них.
.
означает поиск в этом текущем каталоге. Это означает, что вы должны быть в правильном каталоге, чтобы начать с. Я предполагаю, что для вас ~
-iname
означает поиск в моем имени без учета регистра.
*cache*
означает, что имя должно содержать кеш.
Теперь важна следующая часть.
-ok
означает выполнять команды, которые следуют, но как я, если я хочу сделать это первым. Это можно заменить на -exec
, но я бы не советовал. Это могло бы удалить вещи, не сказав вам об этом, и вы этого не хотите.
Хорошо, поэтому следующая строка (это материал, который запускает -ok
): rm -rf {} \;
Надеюсь, rm -rf
говорит само за себя. {}
в основном является заполнителем для имени файла, который он нашел. \;
в конце означает, что это конец этой строки.
Надеюсь, это имеет смысл.
Я советую запускать команду find без всякого права, включая -ok
. Сначала он выкачает список всех файлов кэша, и вы можете просмотреть их. Затем добавьте раздел -ok
и получите взлом!
Это рекурсивно удалит все файлы в папках с именем cache
, начиная с папки base
. Сами папки cache
по-прежнему не повреждены, но все файлы в каждой из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Просто замените basedir на путь к базовому каталогу, который вы хотите удалить
$ find basedir -type f -delete
Если вам удобнее переходить ранее к вашему базовому каталогу, то:
$ cd basedir
$ find . -type f -delete
Вы можете использовать чрезвычайно мощную команду поиска .
Я бы использовал что-то вроде этого:
find . -iname *cache* -ok rm -rf {} \;
Теперь позвольте мне объяснить это для вас , Find - это имя приложения, у него много опций, но вам не нужно много из них.
.
означает поиск в этом текущем каталоге. Это означает, что вы должны быть в правильном каталоге, чтобы начать с. Я предполагаю, что для вас ~
-iname
означает поиск в моем имени без учета регистра.
*cache*
означает, что имя должно содержать кеш.
Теперь важна следующая часть.
-ok
означает выполнять команды, которые следуют, но как я, если я хочу сделать это первым. Это можно заменить на -exec
, но я бы не советовал. Это могло бы удалить вещи, не сказав вам об этом, и вы этого не хотите.
Хорошо, поэтому следующая строка (это материал, который запускает -ok
): rm -rf {} \;
Надеюсь, rm -rf
говорит само за себя. {}
в основном является заполнителем для имени файла, который он нашел. \;
в конце означает, что это конец этой строки.
Надеюсь, это имеет смысл.
Я советую запускать команду find без всякого права, включая -ok
. Сначала он выкачает список всех файлов кэша, и вы можете просмотреть их. Затем добавьте раздел -ok
и получите взлом!
Это рекурсивно удалит все файлы в папках с именем cache
, начиная с папки base
. Сами папки cache
по-прежнему не повреждены, но все файлы в каждой из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Просто замените basedir на путь к базовому каталогу, который вы хотите удалить
$ find basedir -type f -delete
Если вам удобнее переходить ранее к вашему базовому каталогу, то:
$ cd basedir
$ find . -type f -delete
Вы можете использовать чрезвычайно мощную команду поиска .
Я бы использовал что-то вроде этого:
find . -iname *cache* -ok rm -rf {} \;
Теперь позвольте мне объяснить это для вас , Find - это имя приложения, у него много опций, но вам не нужно много из них.
.
означает поиск в этом текущем каталоге. Это означает, что вы должны быть в правильном каталоге, чтобы начать с. Я предполагаю, что для вас ~
-iname
означает поиск в моем имени без учета регистра.
*cache*
означает, что имя должно содержать кеш.
Теперь важна следующая часть.
-ok
означает выполнять команды, которые следуют, но как я, если я хочу сделать это первым. Это можно заменить на -exec
, но я бы не советовал. Это могло бы удалить вещи, не сказав вам об этом, и вы этого не хотите.
Хорошо, поэтому следующая строка (это материал, который запускает -ok
): rm -rf {} \;
Надеюсь, rm -rf
говорит само за себя. {}
в основном является заполнителем для имени файла, который он нашел. \;
в конце означает, что это конец этой строки.
Надеюсь, это имеет смысл.
Я советую запускать команду find без всякого права, включая -ok
. Сначала он выкачает список всех файлов кэша, и вы можете просмотреть их. Затем добавьте раздел -ok
и получите взлом!
Это рекурсивно удалит все файлы в папках с именем cache
, начиная с папки base
. Сами папки cache
по-прежнему не повреждены, но все файлы в каждой из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Просто замените basedir на путь к базовому каталогу, который вы хотите удалить
$ find basedir -type f -delete
Если вам удобнее переходить ранее к вашему базовому каталогу, то:
$ cd basedir
$ find . -type f -delete
Вы можете использовать чрезвычайно мощную команду поиска .
Я бы использовал что-то вроде этого:
find . -iname *cache* -ok rm -rf {} \;
Теперь позвольте мне объяснить это для вас , Find - это имя приложения, у него много опций, но вам не нужно много из них.
.
означает поиск в этом текущем каталоге. Это означает, что вы должны быть в правильном каталоге, чтобы начать с. Я предполагаю, что для вас ~
-iname
означает поиск в моем имени без учета регистра.
*cache*
означает, что имя должно содержать кеш.
Теперь важна следующая часть.
-ok
означает выполнять команды, которые следуют, но как я, если я хочу сделать это первым. Это можно заменить на -exec
, но я бы не советовал. Это могло бы удалить вещи, не сказав вам об этом, и вы этого не хотите.
Хорошо, поэтому следующая строка (это материал, который запускает -ok
): rm -rf {} \;
Надеюсь, rm -rf
говорит само за себя. {}
в основном является заполнителем для имени файла, который он нашел. \;
в конце означает, что это конец этой строки.
Надеюсь, это имеет смысл.
Я советую запускать команду find без всякого права, включая -ok
. Сначала он выкачает список всех файлов кэша, и вы можете просмотреть их. Затем добавьте раздел -ok
и получите взлом!
Это рекурсивно удалит все файлы в папках с именем cache
, начиная с папки base
. Сами папки cache
по-прежнему не повреждены, но все файлы в каждой из них будут удалены.
find base -ipath "*/cache/*" -type f -delete
Просто замените basedir на путь к базовому каталогу, который вы хотите удалить
$ find basedir -type f -delete
Если вам удобнее переходить ранее к вашему базовому каталогу, то:
$ cd basedir
$ find . -type f -delete