Предполагая, что ваш пакет называется foo.deb
, вы можете получить фактическое имя пакета (а также все остальные поля, перечисленные в выводе dpkg-deb -I foo. deb
), используя dpkg-deb
с опцией -f
:
dpkg-deb -f foo.deb Package
-f foo. deb Package
: извлекает поле Package
из foo. deb
пакета;user@user-X550CL ~/tmp % ls -l
totale 46316
-rw-rw-r-- 1 user user 47425034 ott 5 05:55 foo.deb
user@user-X550CL ~/tmp % dpkg-deb -f foo.deb Package
google-chrome-stable
Расширяя это, вы можете удалить данный пакет напрямую, используя подстановку команды, выполнив dpkg-deb -f foo.deb Package
внутри команды dpkg -r
:
sudo dpkg -r $(dpkg-deb -f foo.deb Package)
Проблема в имени файла $CuestaP.txt
. Либо вы хотите, чтобы $
было буквально частью имени файла, тогда вам нужны одинарные кавычки или обратная косая черта :'$CuestaP.txt'
, \$CuestaP.txt
. Или это должна быть переменная, но вы оба забыли определить ее и смешали с литералом.
Ваши данные в файле.txt
[ -s *.fa ]
завершится ошибкой, если существует несколько файлов с именами, заканчивающимися на .fa
. Вы либо тестируете его с одним именем файла (hs_alt_HuRef_chr10.fa
? )или вы зацикливаетесь:
for name in *.fa; do
if [ -s "$name" ]; then
printf '"%s" has data in it\n' "$name"
fi
done >>"$CuestaP.txt"
Это, наряду с большей частью остальных операторов вывода, предполагает, что CuestaP
является переменной. $CuestaP.txt
расширится до содержимого этой переменной, а .txt
будет добавлено в конец значения.
Насколько я вижу, $CuestaP
не будет расширен до нуля, и большая часть ваших данных попадет в файл с именем.txt
(— скрытый файл в текущем каталоге ).