在命令行中首选文件类型

stu*_*ent 4 bash zsh files

通常我必须使用xournal. 如果我从一个“新鲜”pdf文件目录开始,我只是用以下命令打开它们xournal:

for f in *pdf; do xournal $f&; done
Run Code Online (Sandbox Code Playgroud)

当我开始注释一个文件时,比如说 a.pdf我将它保存为 a .xoj,即我只是切换文件扩展名。现在假设我有一个中断的会话并且想要打开.pdf目录中的所有文件,前提是不.xoj存在相应的.xoj文件,否则打开文件(都带有xournal)。

如何在命令行中执行此操作?

Lam*_*ert 6

您可以删除.pdf以获取不带扩展名的文件名,并检查带有.xoj扩展名的该名称的文件:

for f in *.pdf
do
    if [ -f "${f%.pdf}".xoj ]
    then
        xournal "${f%.pdf}".xoj &
    else
        xournal "${f}" &
    fi
done
Run Code Online (Sandbox Code Playgroud)


Dav*_*ing 5

for f in *.pdf; do
  fname=$(basename "$f" .pdf);
  if [[ -e "${fname}".xoj ]]; then
    # .xoj file does exist, do things here
  else
    # .xoj file doesn't exist, do other things here
  fi
done
Run Code Online (Sandbox Code Playgroud)