Расширение этого параметра называется Substring Expansion
и является расширением Bash. Он работает, когда вы набираете его в командной строке, потому что вы используете Bash в качестве интерактивной оболочки, но может не работать, когда вы используете os.system
, потому что он использует /bin/sh
, который может быть не Bash, но некоторый меньший POSIX-совместимый оболочка типа dash
. Вы должны использовать awk
, чтобы сделать то, что вы хотите, как описано здесь вот так:
os.system('for file in *.jpg; do mv "$file" "$(echo $file | awk \'{ string=substr($0, 0, 19); print string; }\')".jpg; done')