Existe o seu script bash:
for file in 'ls *.old'
do
BASE="${file%.*}"
if [[ -e ${BASE}.new ]]
then
mv $file /yourdir/
fi
done
Apenas substitua .old e .new por seus sufixos e yourdir com seu diretório real.
Script atingiu walltime antes de concluir; cria arquivos de um conjunto inicial de arquivos de entrada em arquivos de saída com sufixo diferente, por exemplo,
arquivo1.ext - > file1.oxt
(note que as extensões fornecidas são arbitrárias).
Como faço para mover apenas os arquivos de entrada para os quais já existem arquivos de saída em um diretório separado antes de executar novamente o script inicial? Algo como 'arquivo mv somente se o nome de arquivo (arquivo) .oxt existir'. Poderia fazer isso é outras línguas, mas o meu conhecimento de Bash é extremamente carente aqui.
Obrigado!
Existe o seu script bash:
for file in 'ls *.old'
do
BASE="${file%.*}"
if [[ -e ${BASE}.new ]]
then
mv $file /yourdir/
fi
done
Apenas substitua .old e .new por seus sufixos e yourdir com seu diretório real.
encontre + solução bash :
find . -type f ! -name "*.oxt" -exec bash -c 'f=$1;
fp="${f%.*}"; [[ -f "$fp.oxt" ]] && mv "$f" dest_dir/' _ {} \;
f=$1
- o caminho completo
fp="${f%.*}"
- caminho de arquivo com extensão removida (sem extensão)
[[ -f "$fp.oxt" ]]
- verifique se o respectivo arquivo de "saída" existe
mv "$f" dest_dir/
- mova o arquivo inicial para o diretório dest_dir