Как я могу получить только имя файла без абсолютного пути в сценарии оболочки

Не уверен, что понял вас, но, возможно, вы ищете встроенную оболочку fc.

FCEDIT=vi
fc

позволит вам отредактировать в viвашу последнюю командную строку.

0
02.10.2020, 21:04
3 ответа

Вы можете взять базовое имя$f:

for f in $sourceFolder; do
    echo " printing the file name $(basename $f)"
done

или, поскольку вы уже использовали cd $sourceFolder, это тоже будет работать:

for f in *.gz; do
    echo " printing the file name $f"
done
3
18.03.2021, 23:00

Правильный ответ: @laktak. Но тут другой подход:

for f in "$sourceFolder"; do 
  echo " printing the file name ${f##*/}"
done
0
18.03.2021, 23:00

Часть расширения файла -проста. Такого нет. Есть несколько инструментов, которые помогут вам работать с этой концепцией (, например. basename), но их не существует, поэтому просто игнорируйте это. Для чего вам нужно использовать инструмент dirname.

напр.

echo " printing the file name $(dirname "$f")"
0
18.03.2021, 23:00

Теги

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