Ubuntu para Windows ao executar o script dá mv: não é possível stat erro

Ubuntu para Windows ao executar o script dá mv: não é possível stat erro

Eu tenho um projeto de nó que usa child_process para iniciar um script. O script percorre os arquivos, converte-os em imagem, armazena o caminho de cada um em um array e retorna o array ao nó. então eu converto para string para lê-lo e faço um console.log para ver os resultados. No entanto, estou recebendo um erro:

I/O Error: Couldn't open file `'/mnt/c/localBarcodereader/pdf/calBarcodereader/pdf/[email protected]': No such file or directory.
mv: cannot stat '/mnt/c/localBarcodereader/pdf/calBarcodereader/pdf/[email protected]': No such file or directory`

Não vejo esse erro ao executar em um servidor Linux. Somente quando executo isso no Ubuntu para Windows. Notei no erro que o caminho do diretório está sendo copiado: calBarcodereader/pdf

aqui está meu roteiro:

#! /bin/bash
ndate=
data +%F_%T OIFS=$IFS; IFS=$'\n'; array=($(find /mnt/c/localBarcodereader/pdf -type f - size +0b)); IFS=$OIFS for item in "${array[@]}" do

file=$item
file="${file:9}"
fname="${file::-4}"
PATHTOIMG= "/mnt/c/localBarcodereader/pdfimage/${fname}_${ndate}"
if [ ${file: -4} == ".pdf" ]; then
# pdftoppm /mnt/c/localBarcodereader/pdf/[email protected] /mnt/c/localBarcodereader/pdfimage/test -png -f 1 -singlefile -rx 1500 -ry 1500
    pdftoppm /mnt/c/localBarcodereader/pdf/$file $PATHTOIMG -png -f 1 -singlefile -rx 1500 -ry 1500
    mv /mnt/c/localBarcodereader/pdf/$file /mnt/c/localBarcodereader/pdfarchive
    echo $PATHTOIMG
else
        mv /mnt/c/localBarcodereader/pdf/$file /mnt/c/localBarcodereader/pdfarchive
fi done

e meu código de nó:

const cp = require('child_process')

try {
const data = cp.execSync('/mnt/c/localBarcodereader/barcodeScript.sh');
if (data.toString() !== "") {
    console.log(data.toString())

Responder1

Quando o script estava sendo executado no servidor Linux, o nome do caminho parecia muito mais curto.

Como uma solução rápida, altere esta linha:

file="${file:9}"

para isso:

file="${file:30}"

Essencialmente, você estava alterando a variável filede:

/mnt/c/localBarcodereader/pdf/[email protected]

para:

calBarcodereader/pdf/[email protected]

Quando a intenção era mudar filepara ser:

[email protected]

Existem maneiras melhores de fazer isso e tentarei revisar a resposta (e reformatar sua pergunta) um pouco mais tarde.

informação relacionada