web-dev-qa-db-fra.com

Touch: Impossible de toucher le fichier: aucun fichier ou répertoire de ce type

Je reçois l'erreur:

touch: cannot touch `/opt/tsrm/compliance/cme/log/20121207.log`: No such file or directory

sur la commande tactile: touch $LOGFILE

J'ai également vérifié le lien: Touch: Impossible de toucher `foo ': aucun fichier ou répertoire de ce type , mais je n'ai pas compris la réponse.

Remarque: je devais aussi avoir mkdir: cannot create directory; J'ai réparé cela en ajoutant le -p option.

Pourrait-il être quelque chose avec la version de Linux, je travaille?

23
Swagatika

Vous n'avez pas le chemin qui détient le fichier:

/opt/tsrm/compliance/cme/log/

C'est là que vient l'erreur.

22
daisy

On dirait que vous avez orthographié le chemin. Par exemple, ce dossier /stuff/more_stuff n'existe pas. Cela me donne le résultat:

user@linux:~ $ touch /stuff/more_stuff/stuff.file
touch: cannot touch `/stuff/more_stuff/stuff.file': No such file or directory

Les deux /stuff et /stuff/more_stuff Besoin d'exister pour que touch fonctionne.

7
Kotte

Oui, il pourrait y avoir des chances de Miss Towo ou Directory n'existe pas.

LOGFILE="/opt/tsrm/compliance/cme/log/20121207.log"
LOG_DIR=`dirname $LOGFILE`
[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
touch $LOGFILE
3
Rahul Patil

Aussi stupide que cette réponse sonne, autre que le répertoire manquant, il pourrait y avoir un délimiteur de chaîne entourant la valeur en $LOGFILE

Travail:

LOGFILE=/stuff/more_stuff/stuff.file
touch $LOGFILE

Ca ne fonctionne pas:

LOGFILE="/stuff/more_stuff/stuff.file"
touch $LOGFILE

Certaines distro Linux ont la bizarrerie ci-dessus, alors soyez prudent;)

1
Dwi C Taniel