Tente isso em um shell bash
:
find -type f -name "*_001.jpg" -print0 | while read -d $'#!/bin/bash
find -type f -name "*_001.jpg" -print0 | while read -d $'find -type f -name "*_001.jpg" -print0 | while read -d $'#!/bin/bash
find -type f -name "*_001.jpg" -print0 | while read -d $'%pre%' f; do
t=$(mktemp --tmpdir=$(dirname "$f"))
[ -f "${f%_001.jpg}_002.jpg" ] && \
mv -v "$f" "$t" && \
mv -v "${f%_001.jpg}_002.jpg" "$f" && \
mv -v "$t" "${f%_001.jpg}_002.jpg"
done
' f; do
t=$(mktemp --tmpdir=$(dirname "$f"))
[ -f "${f%_001.jpg}_002.jpg" ] && \
mv -v "$f" "$t" && mv -v "${f%_001.jpg}_002.jpg" "$f" && mv -v "$t" "${f%_001.jpg}_002.jpg"
done
' f; do
t=$(mktemp --tmpdir=$(dirname "$f"))
[ -f "${f%_001.jpg}_002.jpg" ] && \
mv -v "$f" "$t" && \
mv -v "${f%_001.jpg}_002.jpg" "$f" && \
mv -v "$t" "${f%_001.jpg}_002.jpg"
done
' f; do
t=$(mktemp --tmpdir=$(dirname "$f"))
[ -f "${f%_001.jpg}_002.jpg" ] && \
mv -v "$f" "$t" && mv -v "${f%_001.jpg}_002.jpg" "$f" && mv -v "$t" "${f%_001.jpg}_002.jpg"
done
Como um script , ele deve ficar assim (um pouco mais legível):
%pre%Explicação:
- Primeiro, criamos uma lista de arquivos com
find
. Para processar nomes de arquivos estranhos use-print0
para delimitar arquivos com o nullbyte -
while read -d $'
: Leia a saída de %code% delimitada pelo nullbytefind
' f - Criar um arquivo temporário
- Verifique se ambos os arquivos existem
- Mova o original (001) para o arquivo temporário
- Mover 002 para 001
- Mover o arquivo temporário para 002