-iname
wertet ihr Argument, *
, ?
und []
hat eine besondere Bedeutung zu, so dass Sie sie entkommen, wenn Sie wollen, buchstäblich passieren.
Verwenden -quit
Sie auch die Verwendung, falls Sie ansonsten zwei oder mehr Dateien in verschiedenen Ordnern finden (Duplikate?). Ich nehme an, Sie erwarten dname
einen einzigen Verzeichnisnamen.
Ich verstehe $video
schon gegeben:
video="[HD, 1920x1080] - Wild Wild West.mp4"
In diesem Fall versuchen Sie:
video1=$(echo $video | sed 's|\[|\\[|g; s|\]|\\]|g') dname=$(find /run/media/user/usbdisk -type f -iname "$video1" -exec dirname {} \; -quit)
Dies kann in einer Zeile erfolgen. Ich habe mich entschieden, zur besseren Übersicht zusätzliche Variablen einzuführen.