Я считаю, что вы ищете вариант keepcache = 1
, который вам нужно будет установить в / etc / dnf / dnf.conf
. После этого вы должны увидеть файлы в / var / cache / dnf /
.
Если вы хотите удалить загруженные rpm
позже, вы можете использовать dnf clean packages
.
Мне понравилась небольшая задача, которую вы разместили, так что вот мое решение. Я предполагаю, что все ваши файлы начинаются с 5 цифровых символов, поэтому используйте команду cut , чтобы заменить исходные числовые файлы на «XXXXX».
Ниже файлы перед командой.
-rw-rw-r--. 1 daniel daniel 0 May 13 23:18 11111_bar_file.csv
-rw-rw-r--. 1 daniel daniel 0 May 13 22:54 12345_baz_file.csv
-rw-rw-r--. 1 daniel daniel 0 May 13 22:54 67890_foo_file.xml
Ниже приведена однострочная команда.
for src in *.csv; do dst=XXXXX$(echo $src| cut -c6-); mv $src $dst; done;
Ниже файлы после команды.
-rw-rw-r--. 1 daniel daniel 0 May 13 22:54 67890_foo_file.xml
-rw-rw-r--. 1 daniel daniel 0 May 13 22:54 XXXXX_bar_file.csv
-rw-rw-r--. 1 daniel daniel 0 May 13 23:18 XXXXX_baz_file.csv
Это то, что вы ищете?:)
Ссылки:
Попробуйте:
for f in *.csv; do mv -i -- "$f" "XXXXX-${f#*-}"; done
Как это работает:
for f in *.csv; do
Это запускает цикл по всем *.csv
файлам.
mv -i -- "$f" "XXXXX-${f#*-}"
Это переименовывает файлы, как вы хотите, с интерактивным запросом перед перезаписью любого файла.
done
Это отмечает конец цикла.
Пример:
$ ls -1
11234-cam-yy3r5-ro9490-85adu9.csv
12345-ram-3e3r5-io9490-89adu9.csv
14423-sam-hh3r5-uo9490-869du9.csv
45434-dam-qwe35-to9490-43adu9.csv
$ for f in *.csv; do mv -i -- "$f" "XXXXX-${f#*-}"; done
$ ls -1
XXXXX-cam-yy3r5-ro9490-85adu9.csv
XXXXX-dam-qwe35-to9490-43adu9.csv
XXXXX-ram-3e3r5-io9490-89adu9.csv
XXXXX-sam-hh3r5-uo9490-869du9.csv
rename -n 's/(\w+)/XXXXX/' *.csv
удалите -n
, когда будете довольны.
без вилок:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Когда вы используете цикл оболочки, mv
разветвляется один раз на файл. Команда Perl rename
этого не делает.
(Команда Perl rename имеет некоторые ограничения, но в данном конкретном случае эти ограничения не применяются.)
Что касается показанной ранее команды rename
, да, она работает, но тогда возникает путаница между двумя разными видами переименования и так далее. Если у вас есть правильный, отлично, но если нет, это тоже работает.
Если у вас нет команды perl -rename и вы не можете ее установить, вы можете просто сделать это:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Как видите, здесь используется та же замена, что и в верхнем ответе. Конечно, переименование perl -имеет другие навороты (в верхнем ответе, упомянутые уже -n
, затем -0
, -f
и так далее ), и чем больше из них вам нужно, тем больше вы должны установить это вместо того, чтобы накатывать свой собственный таким образом.