Попытка скопировать определенные файлы в определенные папки

Я только что обновил наш старый экземпляр AWS PV со Squeeze (Debian 6) до Wheezy (Debian 7) и затем до Jessie (Debian 8). Наш экземпляр - m1.large, но это должно быть актуально, так как это также унаследованный паравиртуализированный тип.

Начиная с Wheezy больше нет специальных -xen образов ядра - стандартные образы ядра поддерживают запуск в Xen dom0. Поэтому решением является установка последнего linux-image-3.2.0-x-amd64 пакета из Wheezy. К сожалению, образ ядра Jessie linux-image-3.16.0-x-amd64 сжат с помощью xz и Amazon AWS не может его загрузить - он сообщает о следующей ошибке:

ERROR Invalid kernel: xc_dom_probe_bzimage_kernel: unknown compression format

Однако Jessie, похоже, работает вполне счастливо с ядром 3.2 из Wheezy.

0
15.03.2018, 23:44
2 ответа

Me di cuenta de que estaba copiando todos los archivos en todas las carpetas según el tipo de archivo, es decir,.fna.gz, así que especifiqué qué tipo de archivo fna.gz quiero leer y luego copiar. No hay necesidad de una declaración if ya que la especificidad está implícita a través de la expansión del parámetro. Ahora funciona perfectamente.

for fldr in /home/scripts/playground/genomes_2/* ; do

basenm=${fldr##*/} ; f_name=${basenm%%_*} ; 

find. -name $f_name*fna.gz | while read f ; do

    cp -r $f /home/scripts/playground/port/$f_name/ ;



done

done
0
28.01.2020, 02:43

1. Cambiar este código

basenm=${fldr##*/};

a éste

basenm=${f##*/} ;

y elimine -r cambie del comando de copia

cp $f /home/scripts/playground/port/"$f_name"

Tal vez tenga algunas rutas de origen desordenadas como esta /home/scripts/playground/genomes _2/Long _John _Silver/Master _Pip.fna.gz. Entonces, cuando extrae el nombre f _del nombre de la carpeta fldr, obtiene 'Largo'. Luego copia Master _Pip.fna.gz a la carpeta..../Long. 2.

"$f_name" == /home/scripts/playground/port/"$f_name"

no son iguales, y no lo serán.

Básicamente, tu primer guión es bueno. La condición es redundante porque lo hace implícitamente mediante la expansión de parámetros.

Solo agregaría el comando de creación de directorio antes de copiar. Por lo tanto, siempre tendrá un directorio para copiar en caso de que aparezca una nueva persona en el directorio de origen, Shorty _Pete, por ejemplo.

mkdir -p /home/scripts/playground/port/"$f_name"
cp...
1
28.01.2020, 02:43

Теги

Похожие вопросы