شتاب در مسیر شما ممکن است خانه شما نباشد
آدرس مقاله: https://disconnect3d.pl//2026/10/02/dont-put-tilde-in-your-path/ آدرس نظرات: https://news.ycombinator.com/item?id=50042425 امتیاز: 195 # نظرات: 135
من با ابزار sandboxing nono agent بازی میکردم و با یک هشدار به من خوش آمد گفت: ورودیهای PATH که جعبه سند میتواند به: ~/.local/bin/ بنویسد که مشکوک به نظر میرسید.
به عبارت دیگر، این کار را در ~/.bashrc یا ~/.zshrc خود انجام دهید:
~ (tilde) را به مسیر اصلی (یا $HOME ) گسترش نمی دهد زیرا گسترش tilde به خانه فقط در ورودی های نقل قول نشده اتفاق می افتد، همانطور که مستندات bash نیز می گوید:
اگر کلمه ای با یک کاراکتر tilde بدون نقل قول ('~') شروع شود، همه نویسه ها تا اولین اسلش بدون نقل قول (...) یک پیشوند tilde محسوب می شوند. (…)
Bash هر تخصیص متغیر را برای پیشوندهای tilde بدون نقل قول بلافاصله پس از ":" یا "=" اول بررسی می کند و در این موارد بسط tilde را انجام می دهد. (…)
بنابراین به جای اینکه /home/<user>/.local/bin/ به PATH اضافه شود، در نهایت با ./~/.local/bin/ به PATH اضافه میشویم.
توجه داشته باشید که نسخه غیر نقل قول صادراتی PATH=$PATH:~/.local/bin در واقع در Bash و Zsh کار می کند، زیرا بسط tilde نیز در تخصیص متغیر بعد از = و بعد از هر : انجام می شود. اما تکیه بر آن شکننده است، به عنوان مثال، یک فضای خالی تخصیص متغیر را از بین می برد.
همانطور که می بینیم، باینری kek از ./~/.local/bin/ پیدا و اجرا شد — دایرکتوری خانه هرگز درگیر نشد.
می توانید به سرعت بررسی کنید که آیا این مشکل را دارید با:
اگر چیزی را چاپ کرد، به اصلاح .bashrc / .zshrc / پروفایل خود بروید و ~ را با $HOME جایگزین کنید :).
با تشکر از ابزار nono برای هشدار در مورد این - حتی اگر هشدار می تواند پرمخاطب تر باشد (PR ورودی).
متن اصلی (انگلیسی)
The tilde in your PATH may not be your HOME
Article URL: https://disconnect3d.pl//2026/10/02/dont-put-tilde-in-your-path/ Comments URL: https://news.ycombinator.com/item?id=50042425 Points: 195 # Comments: 135