kiavash
kiavash
خواندن ۲ دقیقه·۵ سال پیش

‫zsh: فایل خراب شده‌ تاریخچه

چگونه فایل آسیب دیده‌ی تاریخچه‌ی zsh را درست کنیم

اگر از zsh استفاده می‌کنید یکی از مشکلاتی که ممکن است هراز گاهی با آن روبرو شوید یک فایل تاریخچه‌ی خراب شده است که مانع دسترسی شما به تاریخچه دستورات تایپ شده و اجرای صحیح عملکردها و دستورهایی مانند history، fc یا Crtl+R می‌شود.

خطایی که با آن مواجه می‌شوید چیزی شبیه به خط زیر است:

zsh: corrupt history file /home/kiavash/.zsh_history

چه کار کنیم؟

حل این مشکل یک راه حل ساده در ۴قدم دارد،

  • به دایرکتوری خانه برگردید،
  • فایل تاریخچه را تغییر نام دهید.
  • تاریخچه را بازسازی کنید.
cd ~ mv .zsh_history .zsh_history_bad strings .zsh_history_bad > .zsh_history fc -R .zsh_history
  • بعد از چک کردن درستی مراحل، فایل تغییر نام داده شده را هم پاک می‌کنیم.
rm ~/.zsh_history_bad

ساختن یک اسکریپت

اگر برای شما هم مثل من بیشتر از چندبار این اتفاق افتاده و حوصله تکرار این مراحل را هم ندارید، می‌توانید تمام مراحل بالا را در قالب یک اسکریپت ذخیره کنید و یک بار برای همیشه خودتان را راحت کنید.

برای این‌کار در دایرکتوری ~/bin یا هرجای دیگری که برای اجرای اسکریپت‌های دستوری در $PATH خود مشخص کرده‌اید، یک فایل جدید، با اسمی شبیه به zsh_history_fix یا هر اسم دیگری که دوست دارید، بسازید و تمام مراحل بالا را در آن ذخیره کنید.

cd ~/bin touch zsh_history_fix

فایل zsh_history_fix را با هر ادیتوری که می‌خواهید باز کنید و چند خط‌ زیر را در آن کپی کنید

#!/usr/bin/env zsh mv ~/.zsh_history ~/.zsh_history_bad strings ~/.zsh_history_bad > ~/.zsh_history fc -R ~/.zsh_history rm ~/.zsh_history_bad

و در نهایت فایل ساخته شده را قابل اجرا کنید

chmod +x zsh_history_fix

از این به بعد هروقت که لازم داشتید از هر مسیری که هستید، دستور زیر را در خط فرمان تایپ کنید

zsh_history_fix

منبع انگلیسی

How to fix a corrupt zsh history file


پانویس

آدرس این یادداشت بر روی وبلاگ شخصی کیاوش

در صورتیکه بعد از خواندن این یادداشت بخواهید به هر شکلی در تکمیلش مشارکت کنید، مثلا آن را اصلاح کنید یا مطلبی به آن اضافه کنید، منبع این یادداشت روی گیت‌هاب در این آدرس در دسترس است:
https://github.com/kiamazi/kiavash.one/blob/master/content/blog/2020-02-25-zsh-corrupt-history-file.md
میتوانید آن‌را ویرایش کنید. البته باید یادآوری کنم که هر ویرایشی قبل از اتشار نهایی نیاز به تایید دارد.

لینوکسیونیکسخط فرمانzshlinux
بدون شک من کیاوش هستم. https://kiavash.one
شاید از این پست‌ها خوشتان بیاید